home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Celestin Apprentice 4
/
Apprentice-Release4.iso
/
Languages
/
Mops 2.7
/
Quick Edit ƒ
/
Mops Glossary
< prev
next >
Wrap
Text File
|
1993-12-19
|
124KB
|
3,298 lines
! n addr -- Memory/Nuc2.asm
Stores 32-bit n at address.
!FNAME addr len fcb -- Files/base
Sets filename for fcb.
!FPTR ^filename fcb -- Files/Nuc2.asm
Primitive.
" Strings/Nuc2.asm
Standard delimiter.
"STR" -- addr len Lowstrings/Nuc2.asm
Scans for a string delimited by "..."
# ud1 -- ud2 NumericConversion/Nuc2.asm
standard
#> n -- addr len NumericConversion/Nuc2.asm
Ends numeric conversion. standard
#docsToOpen -- n Events/Nuc2.asm
A value.
#LEAD -- n Console/Nuc2.asm
Computes an appropriate leading for the current window.
#LINES -- n Console/Nuc2.asm
Computes the number of lines for the current window.
(ContTop-ContBot)/#lead.
#S |n| -- 0 NumericConversion/Nuc2.asm
standard
#THREADS -- 8 Compiler /Nuc2.asm
A constant.
$ -- n Compiler/Base
Will compile the ensuing characters in the input stream as a hex number.
$= addr1 len1 addr2 len2 -- result Strings/String
Compares string1 to string2, both given as the first byte of text
(addr) and the number of bytes to compare (len). Essentially used to do
alphabetical sorts with a being less than b and so forth, but note that
a (ascii 97) still is "less than" B (ascii 66). Although A will be less
than a. Result = -1 if string1 is less than string2, = 0 if strings are
equal, = 1 if string 1 is greater than string2. A Toolbox call to
IUMagString. See IM for complete detail. Also, see CMPSTR, it is faster.
$CHK -- Strings/Nuc2.asm
Checks the current string object for legality. Checks that POS and LIM
are within the string, and that POS is not past LIM. A2 points to the
string object.
$ER -- Strings/String
The error action placed in vect $err. Used by class string to display
size, pos, and lim before aborting on error.
$ERR -- System/Nuc.asm
A system vector. Contains $er, which is defined in file String.
$FAIL -- Strings/Nuc2.asm
Error checking primitive.
& -- n : char Strings/Base
Leave ascii value of next char in stream. State smart. Note that the
ANSII standard uses CHAR and [CHAR], which are state dumb.
' -- xt : word Compiler/Nuc2.asm
In Neon, ' (tick) was state-smart, following Fig-Forth. We have now
followed the Forth-83 and ANSI standards in replacing the state-smart
tick with the two state-dumb forms ' (which ticks the next word in the
input stream at run time, no matter what) and ['] which is immediate,
must be used in a definition, and compiles a literal fetch of the xt of
the following word.
'TYPE -- 4bytestring : XXXX Resources/Base
Given 4 ascii characters in the input stream, a 4bytestring will be
left on the stack. This data type is also known as a PACKED ARRAY[1..4]
OF CHAR; in Pascal.
( -- Compiler/Nuc2.asm
Left paren. Denotes the beginning of a comment. At least one space must
follow. End comment with a right paren ).
(.RSTR) -- : lit Errors/base
Displays given string number (a literal) from the mops.rsrc file,
preceded by "Msg# ..."
(.S) end-addr strt-addr -- Stack/Nuc2.asm
(.TSTR) id -- Resources/Base
Displays the string from the mops.rsrc file with the given resource ID.
(:) -- : name Compiler/Nuc2.asm
Does the work for : once the header has been laid down. It is also
called from other words that begin definitions such as :proc.
(;) -- Compiler/Nuc2.asm
(AEErr) err# -- Events/Event
Default for error returns from AppleEvent handlers, i.e. this is the
action for AEErrorVec.
(ASY) fcb -- Files/Files
Sets up for a low-level asynchronous read or write.
(BE) xt -- Compiler/base
A primitive for implementing become.
(BS) -- Console/Nuc2.asm
Moves the cursor back by 6 pixels, performing expected behavior for a
backspace in the console.
(COL) -- : name OOP/Struct
A standard class. Collections are ordered lists with a current size. We
implement them by multiply inheriting the generic (COL) class with the
array class of the appropriate width. We use a few tricks to avoid late
binding to self in loops.
(COMP) xt -- Compiler/Nuc2.asm
Compiles the word with the given xt, by calling its compilation
handler. All compilation should be done via this word or (COMPN), since
they properly allow for words with optimization etc. This word assumes
a zero opcode is to be passed to Handlers. If not, use (COMPN).
(COMPN) xt n -- Compiler/Nuc2.asm
Is similar to (COMP), but has an additional parameter n which is the
opcode for -> ++> etc.
(CR) -- Console/Nuc2.asm
Primitive called by system vectors when cr is executed.
(DDIE) n -- Errors/base
Our normal error action is to call DIE with an error number. DIE calls
SvErr to save the error info, then THROWs the error number. If no error
handler has been installed, or only handlers which don't want that number
and re-THROW it, the default action for THROW occurs. This calls DFLT-DIE.
(DDIE) is the action for the system vector DFLT-DIE.
(EMIT) c -- Console/Nuc2.asm
Prints a character on the screen only.
(Err#) -- n errors/Nuc2.asm
A value.
(FDOS$) trap# -- Toolbox/Base
Primitive for fdos$
(FIND) string-addr lfa -- xt flag | -- string-addr false Compiler/Nuc2.asm
lfa points to the dictionary entry where the search is to start.
(FINDM) hash class link-offs -- offs xt T | F Compiler/Nuc2.asm
Link-offs is the offset from the xt of the class, of the first link in
the search chain. The returned result offs is only used for ivars, and
relates to multiple inheritance. It is the offset of the first of the
ivars of the class in which the found ivar is declared, within the
actual class being searched.
(FORGET) lfa -- Compiler/Nuc2.asm
Forgets down to the given lfa.
(HEADER) -- Compiler/Nuc2.asm
Default for HEADER. Creates a dictionary header using the next word in
the input stream.
(KEY!) -- Events/Event
Sets the default action for vect key by storing the xt of (key) in it.
(KEY) -- c Events/Event
The default action for key. c is the character corresponding to the key
that was pressed. : (key) key: fevent drop $ FF and ;
(LIT-STR) -- addr len Lowstrings/Nuc2.asm
(LIT-STR) is called from any word that needs to be followed by a
literal character string which has a length byte at the start.
(LIT-STR) expects the top cell of the return stack to point to the
length byte, and this cell is incremented to point to the next
instruction following the string.
(LSEEK) fcb mode offset -- ioResult Files/Nuc2.asm
Calls the File Manager routine SetFPos to position the file pointer of
the file specified by fcb as specified by mode and offset. If
successful, ioResult is zero; otherwise, it is non-zero. (lseek) is the
primitive used
(MAKE) fcb -- ioResult Files/Nuc2.asm
Calls the File Manager routine Create to create the file specified by
fcb. If successful, ioResult is zero; otherwise, it is non-zero. (make)
is the primitive used by the New: method of class File.
(NUMBER) addr -- n addr' Console/Nuc2.asm
Primitive used by number.
(OPEN) fcb mode -- ioResult Files/Nuc2.asm
Calls the File Manager routine to open the file specified by fcb using
the access mode mode. If successful, ioResult is zero; otherwise, it is
the result code.
(PAUSE) -- Events/Frontend
Our standard action for the vect pause.
(READ) fcb count bufaddr -- ioResult Files/Nuc2.asm
Calls the File Manager routine Read to read count bytes into bufaddr
from the file specified by fcb. If successful, ioResult is zero;
otherwise, it is non-zero. (read) is the primitive used by the Read:
method of class
(S=) addr1 addr2 len -- b Lowstrings/Nuc2.asm
(SF) -- System/Objinit
The action for setFwind vect.
(SPACES) n -- Console/Nuc2.asm
Will display n spaces in the currrent window.
(TRAP$) trap# -- Toolbox/Base
Compiles a call to the given trap.
(TYPE) addr len -- Console/Nuc2.asm
Prints the given text to the screen.
(WRITE) fcb count bufaddr -- ioResult Files/Nuc2.asm
Calls the File Manager routine Write to write count bytes into bufaddr
from the file specified by fcb. If successful, ioResult is zero;
otherwise, it is non-zero. (write) is the primitive used by the Write:
method of class
) -- Compiler/base
Right paren. Denotes the end of a comment that was begun by ( .
* n1 n2 -- n1*n2 Arithmetic/Nuc2.asm
Standard multiply.
** obj selid -- OOP/Class
Late binds whatever is on the stack to the given method. e.g. obj get:
** . You must be sure that obj really does point to an object.
**N flt n -- flt**n FloatingPoint/floating point
Integer exponentiation. This wasn't in Neon, but might be useful. Note
this operation ignores the high-order 16 bits of n.
*/ n1 n2 n3 -- (n1*n2)/n3 Arithmetic/Nuc2.asm
Multiplies the two signed integers n1 and n2, then divides the double
number product by the signed number n3, leaving a signed quotient.
*/MOD n1 n2 n3 -- rem (n1*n2)/n3 Arithmetic/Nuc2.asm
Same as */ except also leaves the remainder of the division.
*> f -- : word Arithmetic /args
A floating point prefix operator. Multiplies by f. Use for fvalues,
local fvariables, named input parameters. Not for ints.
*W n1 n2 -- n1*n2 Arithmetic/Nuc2.asm
Faster than * on a 68000 if you know that the operands are in the range
-32768 to +32767.
+ n1 n2 -- n1+n2 Arithmetic/Nuc2.asm
Standard addition.
+! n addr -- Memory/Nuc2.asm
Adds n to the longword at address.
++> n -- : word Arithmetic /args
A prefix operator. Adds n. Use for values, local variables, named input
parameters. Also works for floats.
+- n1 n2 -- n3 Arithmetic/Nuc2.asm
Sets the sign of n1 to that of n2, left as n3.
+> n -- : word Arithmetic /args
A prefix operator. Adds n. Synonym for ++>. Use for values, local
variables, named input parameters. Also works for floats.
+CURS -- Console/Nuc2.asm
Turns on display of the cursor on the screen.
+ECHO -- Console/Nuc2.asm
Turns on echoing to the screen of source files being loaded from disk.
You may want to use +echo when loading a newly created source file to
help spot any code snagging compilation. Echo is toggled by the
keyboard short cut: Command-O
+LOOP n -- ControlStructures/Nuc2.asm
Marks end of DO ...+LOOP structure. Like LOOP except will increment i
by n.
, n -- Compiler/Nuc2.asm
Compiles 4-byte n into the next available dictionary.
," -- Strings/Nuc2.asm
Add text till " to the dictionary.
,"STR" -- Strings/Nuc2.asm
Adds text delimited by " at the start and end.
,DLM-STR c -- Lowstrings/Nuc2.asm
Scans the source for a string delimited at the start and end by c, then
adds it to the dictionary.
,EXEC xt n -- Compiler/args
State-smart execute. If used within a program definition, compiles the
xt as a literal to be executed at runtime; otherwise executes it
immediately. This is not an immediate word. It is useful in building
compiler words which conditionally compile other words.
,STR c -- Lowstrings/Nuc2.asm
c is delimiter. Adds the following text until delimiter to the
dictionary as a counted string.
- n1 n2 -- n1-n2 Arithmetic/Nuc2.asm
Standard subtraction.
-! n addr -- Memory/Nuc2.asm
Subtracts n from the longword at address.
--> n -- : word Arithmetic /args
A prefix operator. Subtracts n. Use for values, local variables, named
input parameters. Also works for floats.
-<" -- : filename Files/Nuc2.asm
This is the primitive loader. Use this when rebuilding Mops from below
"Files" which contains the definition for //. Note that <" can be used
but is a bit slower since the files are echoed to display.
-> n -- : word Memory/args
Gazinta. A prefix operator. Stores n in values, local variables, named
input parameters, and vects.
-CURS -- Console/Nuc2.asm
Turns off display of the cursor on the screen.
-ECHO -- Console/Nuc2.asm
Turns off echoing to the screen of source files being loaded from disk.
Echo is toggled by the keyboard short cut: Command-O
-MODELESS -- Events/Objinit
Sets normal event handling - no modeless dialogs, by storing the
appropriate 23 event handlers in the event object fevent.
. n -- Console/Nuc2.asm
Displays a number, followed by one space.
." -- Strings/Nuc2.asm
Will print to the console text delimited by "
Not state smart (only works inside a defintion).
.( -- Lowstrings/Nuc2.asm
Forth-83/ANSI standard. Prints out text till ). Immediate.
.CLASS: -- OOP/Class
A method. Prints the name of the class of the given object.
.CELL addr -- Console/Frontend
A vect. Will display the contents of the given stack cell.
Is revectored to display floats in scientific notation if
fp is loaded. Used for stack display in the new Mops
interface.
.CUR -- System/Nuc2.asm
Draws the cursor in the Mops console window.
.H n -- Console/Base
Displays number as signed hex. See U.H
.ID ?xt -- Compiler/Nuc2.asm
If addr looks like a xt with a name, prints the name. If it looks like
a xt without a name, prints "(no name)". Otherwise doesn't print
anything.
.ID: -- OOP/Class
A method. Prints the name of the given object, if it has a name.
.R n w -- Console/Nuc2.asm
Prints n using the current number base, right-justified in a field w
characters wide. The entire number is printed even if it exceeds field
width.
.S -- Stack/Nuc2.asm
Non-destructively prints the contents of the two stacks in decimal and
hexadecimal.
.W -- : word Memory/Struct
Performs a memory DUMP for 200 bytes starting at the nfa+1 of the
following word in the input stream.
/ n1 n2 -- n1/n2 Arithmetic/Nuc2.asm
Standard division.
// -- : filename System/Files
Nesting loader. Usage: // filename
/> f -- : word Arithmetic /args
A floating point prefix operator. Divides by f. Use for fvalues, local
fvariables, named input parameters. Not for ints.
/MOD n1 n2 -- rem n1/n2 Arithmetic/Nuc2.asm
divides n1 by n2 leaving the remainder under the signed quotient.
/MODW n1 n2 -- rem n1/n2 Arithmetic/Nuc2.asm
Faster version of /mod on a 68000 if you know that the operands are in
the range -32768 to +32767.
/STRING addr len n -- addr' len' Lowstrings/Nuc2.asm
Updates the string descriptor (addr len) by n bytes. Adds n to addr,
and subtracts it from len. n may be negative.
0, -- Compiler/Base
Compiles an empty cell.
0< n -- b Arithmetic/Nuc2.asm
less than zero
0<= n -- b Arithmetic/Nuc2.asm
less than or equal to zero
0<> n -- b Arithmetic/Nuc2.asm
not equal to zero
0= n -- b Arithmetic/Nuc2.asm
zero equals
0> n -- b Arithmetic/Nuc2.asm
greater than zero
0>= n -- b Arithmetic/Nuc2.asm
greater than or equal to zero
0DUP 0 -- 0 0 | n -- n Stack/Nuc2.asm
Duplicates only if zero.
0EXIT ? -- ControlStructures/Nuc2.asm
Equivalent to NIF EXIT THEN.
1+ n -- n+1 Arithmetic/Base
1- n -- n-1 Arithmetic/Base
1/X flt1 -- flt2 FloatingPoint/floating point
Computes the reciprocal.
2+ n -- n+2 Arithmetic/Base
2- n -- n-2 Arithmetic/Base
2/ n -- n/2 Arithmetic/Base
2DROP n1 n2 -- Stack/Nuc2.asm
2DUP n1 n2 -- n1 n2 n1 n2 Stack/Nuc2.asm
3+ n -- n+3 Arithmetic/Base
3- n -- n-3 Arithmetic/Base
4+ n -- n+4 Arithmetic/Base
4- n -- n-4 Arithmetic/Base
: -- : name Compiler/Nuc2.asm
Creates a dictionary entry for the next word in the input stream.
standard
:A -- Compiler/Nuc2.asm
For defining action handlers that cross module bounds. If a class is
defined in module1, but instantiated in module2 with action handlers in
module2, define handlers with :a ... ;a.
:CLASS -- : name super{ cname1 cname2 } opt OOP/Class
Begins definition of a new class. One or more classnames can be
designated as superclass(es). There are optional parameters that may
also be declared after the superclass list, including n INDEXED, LARGE,
and GENERAL.
:CODE -- : name Assembler/
The analog of : for assembler definitions.
:F -- : name Compiler/base
Begins compilation of a word which was previously forward-referenced.
:f creates a headerless entry for the word and then patches the
previous entry to point to the newly compiled definition.
Forward-referencing is useful when a word is to be used before it can
be defined. You end the compilation with ;f.
:LOC -- : name Memory/args
Commences the definition of the "main" word of a local section. The {
... } syntax is not used here, as it has already been done at LOCAL.
:M -- : name: OOP/Class
Begins definition of a method within a class. Note that name: MUST end
with a colon (:).
:MCODE -- : name: Assembler/
The analog of :m for assembler definitions.
:MLOC -- : name Memory/args
Commences the definition of the "main" method of a local section within
a class definition.
:PROC -- : name Toolbox/base
Begins compilation of a word that to the Toolbox behaves like a Pascal
procedure or function. You can use a :proc word when a Toolbox routine
requires a procedural argument.
; -- Compiler/Nuc2.asm
standard
;A -- Compiler/Nuc2.asm
For defining action handlers that cross module bounds. If a class is
defined in module1, but instantiated in module2 with action handlers in
module2, define handlers with :a ... ;a.
;CLASS -- OOP/Class
Ends definition of a class.
;CODE -- Assembler/
The analog of ; for assembler definitions.
;F -- Compiler/base
Ends compilation of a word which was defined with :f. See forward.
;LOC -- Memory/args
Ends the definition of the "main" word, and ends the local section.
;M -- OOP/Class
Ends definition of a method in a class.
;MCODE -- Assembler/
The analog of ;m for assembler definitions.
;MLOC -- Memory/args
Ends the definition of the "main" method, and ends the local section.
;PROC -- Toolbox/base
Ends compilation of word defined with :proc
;S -- System/Nuc2.asm
This is the primitive that ; compiles at the end of a colon definition.
;s transfers execution to the next higher level by popping the return
address of the calling word or method off the return stack.
< n1 n2 -- b Arithmetic/Nuc2.asm
Less than.
<" -- : filename Files/Nuc2.asm
This is the primitive loader. Use this when rebuilding Mops from below
"Files" which contains the definition for //. Note that -<" is a bit
faster since the files are not echoed to display.
<# n 0 -- NumericConversion/Nuc2.asm
Initializes numeric conversion. Always place a 0 on top of the stack,
it isn't really used but you have to reserve space on the stack.
<< n s -- n' Arithmetic/Nuc2.asm
Shifts the bits of n to the left by s shift bits. e.g. 3 2 << will
yield 12 (0011) -> (1100).
<= n1 n2 -- b Arithmetic/Nuc2.asm
less than or equal
<> n1 n2 -- b Arithmetic/Nuc2.asm
not equal, perhaps we could use ≠ ?
<BUILDS -- : name Compiler/Nuc2.asm
We retain <BUILDS to be used in conjunction with DOES> rather than
following the standard and using CREATE. This is because CREATEd words
have the data right at the xt, while DOES> words have to have a pointer
to the DOES> code. So rather than waste space in CREATEd words or do a
complicated kludge during compilation, we use <BUILDS.
<SUPER -- : cname1 cname2 } opt OOP/Class
Synonym for super{, but only looks for one superclass. For backwards
compatibilty with Neon.
= n1 n2 -- b Arithmetic/Nuc2.asm
equals
> n1 n2 -- b Arithmetic/Nuc2.asm
greater then
>= n1 n2 -- b Arithmetic/Nuc2.asm
greater than or equal
>> n s -- n' Arithmetic/Nuc2.asm
Shifts the bits of n to the right by s shift bits. e.g. 12 2 >> will
yield 3 (1100) -> (0011).
>CLASS obj -- class | -- 0 Compiler/Nuc2.asm
Converts an object address to its class address. Returns zero if the
passed-in address isn't an object address. Needs to work for heap as
well as dictionary objects. The test is very unlikely (maybe 1/2**24)
to indicate a non-object as being an object. Without tagged storage we
can't be absolutely sure. To save time we don't do a conservative check
on obj actually being a legal address (unlike xt?), apart from checking
that it is even, which is a very quick check. This means we may crash
if an even but illegal address is passed in. The presumption is that it
really is an object address, and that anything else is an (unlikely)
error.
>Classxt obj -- class | -- 0 Compiler/Nuc2.asm
As for >CLASS, but if the class is exported from a module and you are
executing in the main dictionary, it gives the xt of the imported word,
without accessing the module. This can be useful if you just want to
identify a class without needing all the class info. If you are
executing in the module, however, you will get the xt of the class in
the module. The general rule is that the returned xt will always be the
same as if you had just ticked the classname, wherever you are
executing.
>FLOAT n -- flt FloatingPoint/Nuc2.asm
Converts the integer to a float.
>IN -- a-addr Compiler/Nuc2.asm
A variable. to-in a-addr is the address of a cell containing the offset
in characters from the start of the input buffer to the start of the parse
area.
>NAME xt -- nfa Compiler/Nuc2.asm
Returns the name field address (nfa) for the given xt.
>NUMBER ud1 addr1 len1 -- ud2 addr2 len2 Core/Nuc2.asm
>ORIGIN x y -- QuickDraw/Nuc2.asm
Calls toolbox SetOrigin.
>PTR addr -- n Memory/Nuc2.asm
In our present system, this is an alias for @.
>R n -- Stack/Nuc2.asm
Pushes the top stack value to the return stack.
>STR255 addr1 len addr2 -- addr2 Strings/Base
Converts text beginning at addr1 for len characters to a str255 type
string at addr2.
?#xtS n1 n2 -- Compiler/Struct
Used to check that the right number of stacked xts is being passed in.
?>CLASS obj -- class OOPprimitive/Class
Converts the pointer to an object to a pointer to its class. Aborts if
failure.
?>ClassInMod class -- class' Compiler/Nuc2.asm
Converts a class address to the corresponding class address in a
module, if the class is exported, and holds the module. If the class
isn't exported, does nothing.
?CLASS -- OOPprimitive/Class
Error if not compiling a class definition.
?COMP -- Compiler/Nuc2.asm
Prints message: "compilation only" if not compiling, that is, if state
is not zero
?DEFN n1 n2 -- Errors/Nuc2.asm
Prints message: "unpaired conditionals" if n1 does not equal n2.
Message indicates that compiled conditionals do not match, such as an
IF without a THEN.
?DO end beg -- ControlStructures/Nuc2.asm
Marks beginning of ?DO ... LOOP sequence. Will not execute even once if
end ≤ beg. See DO.
?DUP n -- n n | 0 -- 0 Stack/Nuc2.asm
Duplicates only if non-zero.
?ERROR b -- : lit Errors/base
If b is true, aborts and displays given string number (a literal) from
the mops.rsrc file.
?EVENT eventMask -- b Events/Nuc2.asm
Calls the Toolbox Event Manager routine EventAvail to test for the
event(s) specified by eventMask. If an event is available, leaves a
true flag; otherwise, leaves a false flag.
?EXEC -- Errors/Nuc2.asm
Issues an error message if not in interpret state.
?EXIT ? -- ControlStructures/Nuc2.asm
Equivalent to IF EXIT THEN.
?PAIRS n1 n2 -- System/Nuc2.asm
Prints message: "unpaired conditionals" if n1 does not equal n2.
Message indicates that compiled conditionals do not match, such as an
IF without a THEN.
?PAUSE -- Events/Nuc.asm
A system vector. Normally defined as ?p (see definition of ?p in file
struct), which will look for a keystroke to pause the current activity
and then continue only if the spacebar is pressed. Used when listing
words to the console.
?RDEPTH -- Errors/base
Prints message: "Return Stack Overflow" and executes an abort if the
return stack is too close to its maximum depth.
?RTNAEPMISSED w:xx rc -- w:rc' Events/Nuc2.asm
This can be called after calling GotParms? to convert the return code
from that word to the appropriate return code to return to the caller
of the handler. If GotParms? returns false, that means we missed a
parm, so we return -1715. If GotParms? returned anything non-zero, that
means we got all the parms, so we return zero.
?STACK -- Errors/Nuc2.asm
Prints message: "empty stack" and executes an abort if underflow has
occurred on the parameter stack. Underflow may occur if a word or
method expects more parameters than are provided.
?TERMINAL -- Events/Nuc2.asm
Performs a 40 ?Event. This word is used in class Mouse, and in the
utility word ?pause to test for a keyboard event.
@ addr -- n Memory/Nuc2.asm
fetches 32-bit value at address
@ABS addr -- abs-addr Compiler/Nuc2.asm
addr is the address of a relocatable address (i.e. where the
relocatable address itself is located, not where it points to). Fetches
this address and converts it to absolute. Gives an error if it isn't a
valid relocatable address.
@VAL -- Compiler/Base
Compiles a number from input stream.
@WORD -- addr Compiler/Base
Retrieves next blank-delimited word from input stream.
@XY -- x y QuickDraw/Nuc2.asm
Via a toolbox call to GetPen, leaves the x and y coordinate of the
graphics pen.
ABORT -- Errors/Nuc2.asm
standard
ABORT" b -- : textString" Errors/Nuc2.asm
Prints the text string and executes an abort, if the boolean is true.
Useful in debugging and error reporting. At least one space must follow
the first quote. Can be used in colon definition only.
ABORTVEC -- System/Nuc.asm
A system vector. Contains cl3, defined in file Objinit.
ABOUTVEC -- Menus/Frontend
The first action handler for our AppleMenu object, since it is a vect
we can reuse in an application.
ABS n -- |n| Arithmetic/Nuc2.asm
absolute value (not antilock brake system)
ABS> -- : word Arithmetic/args
A floating point prefix operator. Changes to absolute value. Use for
fvalues, local fvariables, named input parameters. Not for ints.
ACCEPT addr n1 -- n2 Core/Nuc2.asm
ANSII Receive a string of at most n1 characters.
ACTV-EVT -- false Events/Event
An action word for fevent. Handles activate and deactivate events by
sending a late bound enable:and disable: messages to the current window
(but only if it is an application window).
ACTW -- wptr | 0 Events/Window
A value. Indentifies any active Mops window which should be idled. Will
be set zero if we have, say, a dialog as the front window, but NOT if
we're switched into the background.
ADDR: -- ^base OOP/Class
A method. Returns the address of the beginning of an object's ivars.
AEErrorVec -- Events/Event
A vect. Called when an AppleEvent handler returns. Default is (AEerr).
AEhandler ^AE ^AEReply RefCon -- Events/Nuc2.asm
Put at the start of an AppleEvent handler proc. Pops the parms into the
appropriate locations.
AGAIN -- ControlStructures/Nuc2.asm
Standard. Marks bounds of BEGIN ... AGAIN loop.
ALIGN -- Compiler/Nuc2.asm
If the DP is odd, adds one to it.
ALIGN-DP -- Compiler/Nuc2.asm
Same as ALIGN.
ALIGNED addr -- even-addr Memory/Nuc2.asm
Increments addr by one if it is odd, leaving the next address. You can
use align to make sure the 68000 will not try to access memory
beginning at an odd address, which can cause a fatal error.
ALLOT n -- Compiler/Nuc2.asm
Reserves n additional bytes for the code field of the last defined
dictionary entry.
AND n1 n2 -- and Arithmetic/Nuc2.asm
AND> n -- : word Arithmetic /args
A prefix operator. Logically ands with n. Use for values, local
variables, named input parameters. Not for floats.
ANTILOG flt1 -- flt2 FloatingPoint/floating point
Antilog ( 10^x ) of x
APPINIT -- Applications/Objinit
APPINIT is the startup word that we execute via ObjInit in installed
applications. Performs a filint and sizes fwind to our screen if we are
using fwind.
AppleEvents? -- b Events/Nuc2.asm
A value. Set True by the startup code if AppleEvents are available.
APPLEMEN -- obj Menus/FrontEnd
The standard AppleMenu object. Need only send the getnew: message at
runtime to activate. Note you must copy the MENU resource #1 into an
installed application before this will run, otherwise bomb city.
APPLEMENU -- : name Menus/MenuMod.txt
A standard class, subclass of menu. An applemenu facilitates standard
apple menu support by filling the menu with all of the desk accessories
when a getnew: message is sent. The Mops applemenu object is applemen.
APPWIND? -- b Events/Event
True if this is an application window. This check is necessary for
non-multifinder systems while calling WaitNextEvent.
ARCTAN flt1 -- flt2 FloatingPoint/floating point
Computes arctangent, given radians.
ArithErr strID -- System/Nuc.asm
A system vector. Normally contains DIE. Is called upon division by zero.
See Zdiv in file Nuc1.asm.
ARRAY #elems -- : name OOP/Struct
A standard class. ARRAY is the basic 4-byte cell one-dimension array.
Class is INDEXED.
ARROWCURS -- Quickdraw/QD
Sets the cursor to this. Merely calls Toolbox InitCursor.
ASMCALL addr len -- Toolbox/tool.txt
Assembles the trap call to the Toolbox routine named by the string.
Note that SaveA5 and RstA5 are not called as for CALL. This may
be ok for those toolbox routines which are not A5 sensitive.
ASYNCH -- Files/Files
Sets value asynch? to true.
ASYNCH? -- b Files/Files
A value. True if performing an asynchronous i/o operation.
BASE -- n Arithmetic/Nuc2.asm
This value contains the current number base used for the input and
output conversions.
BE -- Compiler/base
A primitive for implementing become.
BECOME -- : word Events /base
BECOME allows restarting at a given word, with all stacks empty. This
is necessary in menu handlers and other areas that could create
indefinite nesting situations.
BECOMExt -- : word Compiler/base
A system vect used to implement become.
BEEP dur -- Sound/Nuc2.asm
Beeps the Macintosh's speaker for dur ticks (60ths of a second).
No it doesn't. dur is ignored and it gives a beep of duration
based on the control panel setting. But we retain the need for
*something* on the stack for backwards compatibility.
Simply calls Toolbox SysBeep.
BEGIN -- ControlStructures/Nuc2.asm
standard. Marks the beginning of a BEGIN ...
(WHILE/NWHILE/UNTIL/NUNTIL/AGAIN) looping structure.
BIG# -- $7FFFFFFF System/Nuc2.asm
A constant.
BIND_WITH obj --<selector> obj-modified xt OOP/Class
If you are late-binding in a loop, it can be much faster if you do the
bind just once, then reuse the resulting xt each time in the loop. This
way you only have to perform the method search once. To bind initially
and get the xt, use BIND_WITH. Usage: (savext and obj-mod are values or
locals). (get object's address) bind_with someSelector: -> savext ->
obj-mod. (in the loop) obj-mod savext ex-method.
BL -- 32 Strings/Nuc2.asm
A constant.
BLANKS addr n -- Strings/Nuc2.asm
Fills memory with blanks (ascii 32) starting at addr for n bytes.
BOOL -- : name OOP/Struct
A standard class. Subclass of byte. Note that since the datalength of
aMops class bool is 1, this class should not be used to map into a
Toolbox record of type BOOLEAN because the Pascal type boolean has a
length of 2 (Use the Mops class INT for a Toolbox boolean).
BOTTOM -- n Console/Nuc2.asm
Computes a quantity needed by the console.
BOUNDS addr cnt -- limit addr Controlstructures/Nuc2.asm
Equivalent to OVER + SWAP. Useful for setting up many DO loops.
BRESET addr bit# -- Memory/Nuc2.asm
Clears the bit. bit# can be >8.
BSET addr bit# -- Memory/Nuc2.asm
Sets the bit. bit# can be >8.
BTEST addr bit# -- b Memory/Nuc2.asm
Tests the bit and returns true if the bit is set, false otherwise.
BTOGGLE addr bit# -- Memory/Nuc2.asm
Inverts the bit. bit# can be >8.
BUF255 -- addr Strings/Base
A 256-byte buffer for str255 operations.
BUSY -- n System/Nuc2.asm
A value. FCB of file involved in asynchronous I/O, or zero if none. Set
from high level, not from here. Cleared here though, by the completion
routine.
BYE -- System/Nuc2.asm
Closes open files and returns control to the Finder via ExitToShell.
BYTE -- : name OOP/Struct
A standard 1-byte variable class. See also UBYTE
BYTES n -- : ivarname OOP/Class
Bytes is used as the ivar allocation primitive for basic classes.
Allocates n bytes as a named instance variable of an object. You can
use bytes to map a Toolbox data structure as an object when named
access to some of the fields is not needed (but you must know the
proper length).
C! c addr -- Memory/Nuc2.asm
Stores given 8-bit number to byte at given address.
C, w -- Compiler/Nuc2.asm
Compiles 1-byte c into the next available dictionary.
C@ addr -- c Memory/Nuc2.asm
Fetches 8-bit value from given address. Does not sign extend to 32-bits.
C@X addr -- c Memory/Nuc2.asm
Fetches 8-bit value from given address. Sign extends to 32-bits.
CALL -- : TrapName Toolbox /tool.txt
Used to compile a call to a Macintosh Toolbox routine. Simply follow
call with the name of the routine. Compilation only. Note that the
toolbox call will be preceded with a call to SavA5 and will be
followed by RstA5. See ASMCALL to avoid SavA5 and RstA5.
See FCALL for low level File Manager trap calls.
CallFirst -- : methodname: OOP/Call1&Lmod.txt
The next method definition will always execute the method indicated by
methodname: BEFORE it is executed by a subclass. Provides a way for
superclasses to limit the extent to which subclasses may override a
method.
CallLast -- : methodname: OOP/Call1&Lmod.txt
The next method definition will always execute the method indicated by
methodname: AFTER it is executed by a subclass. Provides a way for
superclasses to limit the extent to which subclasses may override a
method.
CASE n -- ControlStructures/base
Begins a CASE .. OF .. ENDOF ... ENDCASE structure. Also see RANGEOF.
We normally normally use this form of case when values to be compared
to n are computed at runtime. See also CASE[ and SELECT{
example use:
...
CASE x OF ... ENDOF
y z RANGEOF ... ENDOF
( optional default actions can go here, n is on the stack at this
point, you can use it but you must put *something* back on
the stack so ENDCASE will have something to consume)
ENDCASE ...
CASE? -- b Strings/StrUtilities
A value. True if case to be significant in comparisons done by CMPSTR
and string+ objects (does not affect string objects).
CASE[ n -- ControlStructures/casemod.txt
Begins a CASE[ .. ]=> .. DEFAULT=> ... ]CASE structure. Also see RANGE]=>
], and range],
We use this form of case when values to be compared to n are known at
compile time. See also CASE and SELECT{. Important, compare-to values
are limited to -32768 through +32767.
example use:
...
CASE[ x ]=> ...
[ y z RANGE]=> ...
[ a ], [ b ], [ d f range], [ h ]=> ...
DEFAULT=> ( DEFAULT=> is mandatory. Default actions go here, n is on
the stack at this point, you normally will consume n
here because , unlike ENDCASE, ]CASE will *not* consume
the top stack item.)
]CASE ...
CATCH xt -- n Errors/Nuc2.asm
Standard. Executes xt and returns 0 if all is OK, or n if THROW was
executed with n.
CELL+ addr1 -- addr2 Memory/Base
Add the size of a cell (currently 4) to addr1.
CELL- addr1 -- addr2 Memory/Base
Subtracts the size of a cell (currently 4) from addr1.
CELLS n1 -- n2 Memory/Base
n2 is the size of n1 cells.
CFAS( -- : name1 name2 etc. Compiler/base
Synonym for xts{.
CFAS{ -- : name1 name2 etc. Compiler/base
Synonym for xts{.
CHAR -- n : char Strings/Base
Leave ascii value of next char in stream. Interpretation only.
Use [CHAR] inside a definition. ANSII See &
CHAR+ addr1 -- addr2 Memory/Base
Adds the size of a character (currently 1) to addr1.
CHARS n1 -- n2 Memory/Base
n2 is the size of n1 chars. In the current implementation this is
effectively a no-op.
CHKCLASS xt -- xt OOP/Class
Aborts and issues error message if the xt does not refer to a class.
CHKSAME obj -- obj OOP/Class
A check that two objects are of exactly the same class. Aborts with
error message if not.
CL1 -- Oopprimitive/Class
Cleans up the class compiler data on an abort.
CL2 -- System/Files
Next cleanup word - clean up all file stuff on abort, as well as
whatever we were doing before ( in CL1 ).
CL3 -- System/Objinit
Another clear action for abortvec. Does a key!, unhilites a menu, sets
arrowcurs, and finally calls unmod and cl2.
CL>LEN #els class -- #els len OOPprimitive/Class
Gets data length of object given #els and class.
CLASS: -- class OOP/Class
A method. Returns the class pointer for an object.
CLASS? xt? -- xt? b Compiler/Nuc2.asm
Returns true if the xt refers to a class.
CLASSINIT: -- OOP/Class
Our standard constructor method. The default message that is ALWAYS
sent to an object at time of instantiation, even ivars. Note that a
classinit: method should not expect any stack parameters (actually, it
will work for dictionary objects, but it won't work for ivars, so it is
best not to do this).
CLASS_IS -- : classname OOP /Class
The normal object pointer syntax is ObjPtr ZZZ class_is someClass
Thereafter, any messages sent to zzz are early-bound to the object that
zzz points to at the time the message executes. Also, see set_to_class .
CLRCOMP -- Compiler/Nuc2.asm
Called by error routines, also by semicolon. Clears all the compilation
flags to their initial state.
ClrFCB fcb -- Files/base
Erases a parm block up to the FSSpec record, except for the filename
pointer.
CLS -- Console/Nuc2.asm
Clears the current window and leaves cursor in upper left corner.
CMOVE src dest cnt -- Memory/Nuc2.asm
Copies cnt bytes from src address to dest address. Cnt must be between
0 and 64K. Use move for a more general cnt.
CMPSTR addr1 len1 addr2 len2 -- n Strings/StrUtilities
Compares 2 strings. Case is significant if CASE? is set to true.
Returns: -1 if first string low, 0 if strings are equal, 1 if first
string high. We assume the lengths are both less than 64K. Similar to
$=, but faster.
CODE -- : name Assembler/Nuc2.asm
Creates a header for a code definition. In our system it is actually a
synonym for COLHDR, since there's really no essential difference
between code and colon definitions.
COLHDR -- Compiler/Nuc2.asm
Lays down the header for a colon definition.
COMPILE, cfa -- Compiler/Nuc2.asm
ANSI synonym for (COMP)
CONSTANT n -- : name Memory/Nuc2.asm
standard. Creates a dictionary entry whose runtime action is to place n
on the stack.
CONTBOT -- y Quickdraw/Nuc2.asm
Returns the bottom of the content region for the front window.
CONTEXT -- addr Compiler/Nuc.asm
CONTTOP -- y Quickdraw/Nuc2.asm
Returns the top of the content region for the front window.
COPYH -- System/Nuc2.asm
Glue routine for various toolbox calls, which is needed by the HANDLE
and PTR classes. Should not be called directly from anywhere else.
COPYTO: obj -- OOP/Class
A method. Copies the ivar part of the passed in object to self. Doesn't
check type - be careful.
COS flt1 -- flt2 FloatingPoint/floating point
Computes cosine, given radians.
COT flt1 -- flt2 FloatingPoint/floating point
Computes cotangent, given radians.
COUNT str255 -- addr len Strings/Nuc2.asm
Converts a Pascal type string ( str255 ) to the addr len format.
CPADDR -- addr System/Nuc2.asm
Completion routine address, or zero if none. Also servesas a flag that
the next op is to be asynchronous.
CR -- Console/Nuc2.asm
"Prints" a carriage-return/linefeed (cr/lf) on the screen. If system
vector pcrvec is vectored to pcr, by executing +print, the cr sends a
cr/lf to the printer.
CREATE -- : name Compiler/Nuc2.asm
This is now Forth-83/ANSI. Creates a dictionary header using the next
word in the input stream. If this new word is executed, it returns its
pfa. What we actually do is to call HEADER, then add in the appropriate
handler code.
CREATE_OBJ -- : name Compiler/Nuc2.asm
Creates a dictionary header for an object. As for CREATE, but we add
the handler code for objects instead.
CREPLACE c mask addr -- Memory/Nuc2.asm
Replaces bits in the addressed byte with the corresponding bits from c,
in those positions where the mask has ones. Dont' use. Use bset, etc.
CRESET c addr -- Memory/Nuc2.asm
Clears bits in byte at addr, corresponding to the bits SET in c.
CROSSCURS -- Quickdraw/QD
Sets the cursor to this.
CRVEC -- System/Nuc2.asm
A system vector. Set (cr) with OLDVECS in effect, set to xcr
with NEWVECS.
CSET c addr -- Memory/Nuc2.asm
ORs c into the byte at addr.
CSTATE -- b Compiler/Nuc2.asm
This value is a boolean which is true while a class is being compiled.
It is analogous to state which is true while a colon word is being
compiled.
CTOGGLE c addr -- Memory/Nuc2.asm
Exclusive-ORs c into the byte at addr.
CURR-DEF -- n Compiler/Nuc2.asm
A value.
CURS -- -1 QuickDraw/Nuc2.asm
A value.
CURSOR n -- : name Quickdraw/QD
A defining word for cursors, uses the Toolbox calls GetCursor and
SetCursor at runtime execution of daughter words.
CvtClip -- Events/Event
A vect. Called for clip conversion.
DATETIME -- n Time/base
Leaves the value of the Mac global variable Time on the stack. This is
the number of seconds since midnight, January 1, 1904.
DB -- Debugging/Nuc2.asm
Calls MacsBug or whatever debugger may be installed (A9FF trap).
DBLTICKS -- n Events/Event
Returns the double-click interval in ticks via the Mac global variable
DoubleTime.
DECIMAL -- Arithmetic/Nuc2.asm
Sets base to 10.
DEEP_CLASSINIT: -- OOP/Class
Called automatically whenever an object is created. Does a classinit:
on each nested ivar. Use for totally reinitializing an object.
DEFAULT=> -- n ControlStructures/casemod.txt
Used in a CASE[ construct. Mandatory.
DEFAULT{ -- n Controlstructures/Modules
Used in a select{ construct. Optional.
DEFINED? -- addr n : word Compiler/Nuc2.asm
Defined as MWORD FIND. Does a FIND on the next word in the input stream.
DEG2RAD flt1 -- flt2 FloatingPoint/floating point
Converts degrees to radians.
DEL -- System/QD
Draws a downward-pointing arrow to the right of and below the current
pen position - we need this for pop-up menus. Any mathematician will
recognize this symbol - hence the name.
DEPTH -- n Stack/Nuc2.asm
Leaves the number of items on the stack prior to executing depth.
DESK -- Events/Event
Desktop click handler - do nothing.
DFA class -- dfa OOPprimitive/Class
Given a pointer to a class, returns the data field address. First 2
bytes are the data length, second 2 bytes are the width of the indexed
elements.
DFLT-DIE n -- Errors/Nuc.asm
A system vector. Normally contains (ddie).
DFLT-ERR n -- Errors/Nuc2.asm
prints "Error # n" in console window. Used by various error
handling words in the Mops system.
DIALOG -- : name Alerts/Dialogs/DialogMod.txt
A standard class, subclass of x-array. The Mops approach to handling
dialogs.
DICADDR -- : name OOP/Struct
DICADDR is a relocatable dictionary address class - use to store
non-executable dictionary addresses.
DICSIZE -- n Compiler/Nuc2.asm
A value. Set by the startup code to the actual space allocated for the
dictionary
DIE strID -- System/Nuc.asm
A system vector. Normally contains (DDIE).
DIGIT c base -- n2 t | f Arithmetic /Nuc2.asm
Converts the ASCII character c using base into its binary equivalent
n2, and leaves a true flag; if conversion fails, leaves a false flag
only. Digit is a primitive used by (number).
DIRFIND n fcb -- Files/Nuc2.asm
Calls the HFSDispatch Procedure of the Mac File Manager. n is the call
number and fcb is the file parameter block. See IM-IV.
DISK-EVT -- false Events/Event
An action word for fevent. Handles a disk insert event.
DISPL! src dst -- Compiler/Nuc2.asm
Makes the source address src relative (long form), and stores it at the
destination address dst.
DISPL, addr -- Compiler/Nuc2.asm
Makes addr relative (long form), and adds it to the dictionary.
DISPLACE addr -- addr' Compiler/Nuc2.asm
Takes the longword at addr, and adds it to addr itself to give addr'.
Thus the word at addr is in effect a relative displacement from its own
address. We use this scheme to link words in the dictionary.
DLEN&XWID class -- dlen xwid OOPprimitive/Class
Given a class pointer, retuns the ivar datalength and width of the
indexed elements.
DLGWIND -- 1 Windows/Window
A constant.
DO end beg -- ControlStructures/Nuc2.asm
Marks beginning of DO ... LOOP sequence. Will always execute at least
once, even if end ≤ beg. See ?DO. DO loops are slightly different,
although the change won't affect most existing code. The loop is
considered to be finished if the index crosses the boundary between the
limit and the limit minus one, in either direction. The main effect is
to make loops go around one more time if the index is being counted
down.
doAEhandler ^AE ^AEReply RefCon -- Events/Nuc1.asm
Called from AEhandler to set things up at the start of a handler.
DOCWIND -- 0 Windows/Window
A constant.
DODSK item# -- item# Menus/Menu
Executes the desk accessory for an item. Mops will use this as the
second action handler for the object applemen.
DOES> -- Compiler/Nuc2.asm
Defines the runtime action of a word defined with <builds.
DOWN n2 n3 n1 -- n1 n2 n3 Stack/Nuc2.asm
Reverse of rot. Sometimes called -rot.
DO_ET -- Compiler/base
Primitive used by type{.
DP -- addr Compiler/Nuc.asm
A value. Leaves the address of the next memory location above the
dictionary.
DPL -- n Console /Nuc2.asm
Returns the number of digits to the right of the decimal on double
integer input. This may be used to compute the output column location
of a decimal point in user generated formatting. The default value on
single number inputs is -1.
DROP n -- Stack/Nuc2.asm
DUMP addr len -- Memory/Struct
Displays the contents of memory beginning at addr for len bytes in a
hex and ascii format. Note that the \/ mark points to the requested
address (the dump may start at an address other than addr).
DUMP: -- OOP/Class
A method. Performs a formatted dump of a class.
DUP n -- n n Stack/Nuc2.asm
E -- flt FloatingPoint/floating point
An fcon. Returns the base of the system of natural logarithms,
2.71828...
E. flt -- FloatingPoint/floating point
Same as 26 e.r
E.R flt wid -- FloatingPoint/floating point
Prints the floating point number in scientific notation in a field wid
characters wide.
ECHO? -- b Console/Base
A value. Set true to echo loads to screen.
ECHOVEC -- Console /Nuc2.asm
This system vector is executed in Mops to echo keystrokes. When Mops
starts up, echovec is vectored to (emit) which prints a character on
the screen only. Selecting Echo to Printer from the Mops menu vectors
echovec to echo, which prints a character on the screen and printer
(this is the same as +print).
EDITMENU -- : name Menus/MenuMod.txt
A standard class, subclass of menu. An editmenu facilitates standard
desk accessory support by first calling SystemEdit when an exec:
message is sent so that any active DA first gets a go at it. The Mops
editmenu object is editmen.
ELSE -- ControlStructures/Nuc2.asm
standard. Use with IF and NIF.
EMIT c -- Console/Nuc2.asm
Prints the character (lower 8 bits of the number) on the stack to the
screen or printer by executing the system vectors emitvec and pemitvec.
Whether the screen and/or printer are used depends on the contents of
emitvec and pemitvec. When Mops starts up, emitvec is vectored to
(emit) and pemitvec is vectored to drop. So, the default action of emit
is to print a character on the screen only. Selecting Echo to Printer
from the Mops menu vectors echovec to echo, which prints a character on
the screen and the printer (this is the same as +print). The system
value OUT is incremented for each character transmitted.
EMITVEC -- Console /Nuc2.asm
This system vector contains the xt of the word that performs character
output to the primary device, usually the screen. When Mops starts up,
emitvec is vectored to (emit), the primitive that prints a character on
the screen using the DrawChar routine in QuickDraw.
ENDCASE n -- ControlStructures/base
Marks end of CASE structure.
ENDLIST? chr -- b Compiler/base
Primitive used by type{.
ENDLOAD -- Compiler/wherever
When loading a file, marks the end of input for that file. Useful for
including instruction and/or examples at the end of a file without
concern for using comment notation.
ENDOF -- ControlStructures/base
Use in CASE structure.
ENDTRAV? -- b Compiler/Struct
A value. May be set from within a trav handler to terminate the trav.
EOF -- -39 Files/Files
A constant. Mac File Manager result code eofErr. Logical end-of-file
reached during read operation.
ERASE addr n -- Memory/Nuc2.asm
Clears (fills with zeros) memory starting at addr for n bytes.
EVALUATE addr len -- Compiler/args
ANSI standard. Makes the passed-in string the input stream for
interpretation or compilation, until it is exhausted.
EVENT -- : name Events/Event
A system class, subclass of x-array. Our Mops event object is fevent.
EVENTLOOP -- Events/Frontend
A word you can call as an event loop in many applications. Properly
handles keystrokes for windows with, for example, text edit routines.
EX-GEN xt -- Compiler/Nuc2.asm
"Execute general". Executes the word with the given xt. The word may be
anything. It is executed by compiling it into a temporary buffer, then
branching there. Slower than Execute, but unlike Execute, will really
execute anything.
EX-METHOD obj xt -- Compiler/Nuc2.asm
Executes the method with the given xt, using the given object.
EXECUTE xt -- Compiler/Nuc2.asm
standard
EXIT -- ControlStructures/Nuc2.asm
Terminates execution of the current word or method, and returns control
to the next higher word on the return stack.
EXMID obj selID -- OOPprimitive/Class
Executes a method given its sel ID. Used in late binding.
EXN xt n -- Compiler/Nuc2.asm
is to EX-GEN what (COMPN) is to (COMP). It has the additional parameter
n which is action code for -> ++> etc. Because this can be called from
EX-GEN (which may be executing a prefix op), we use the alternate
execution buffer ExBuf1.
EXP flt1 -- flt2 FloatingPoint/floating point
Base e exponential.
EXP1 flt1 -- flt2 FloatingPoint/floating point
e**x - 1
EXP21 flt1 -- flt2 FloatingPoint/floating point
2**x - 1
EXTEND w -- n Arithmetic/Nuc2.asm
Sign extends a 16 bit number to a 32 bit number, stack alignment is
unaffected
extra_inits -- FrontEnd/Struct
Executes all of the xts contained in the object init_actions.
F* flt1 flt2 -- flt1*flt2 FloatingPoint/floating point
standard multiply
F** flt1 flt2 -- flt1**flt2 FloatingPoint/floating point
General exponentiation - takes 2 floats. Here I think the Neon name was
crazy. But we've still got it for compatibility.
F+ flt1 flt2 -- flt1+flt2 FloatingPoint/floating point
standard addition
F- flt1 flt2 -- flt1-flt2 FloatingPoint/floating point
standard subtraction
F.R flt wid -- FloatingPoint/floating point
Prints the floating point number without exponents in a field wid
characters wide.
F/ flt1 flt2 -- flt1/flt2 FloatingPoint/floating point
standard division
F0< flt -- b FloatingPoint/floating point
F0<= flt -- b FloatingPoint/floating point
F0<> flt -- b FloatingPoint/floating point
F0= flt -- b FloatingPoint/floating point
F0> flt -- b FloatingPoint/floating point
F0>= flt -- b FloatingPoint/floating point
F2DROP flt1 flt2 -- FloatingPoint/floating point
F2DUP flt1 flt2 -- flt1 flt2 FloatingPoint/floating point
F< flt1 flt2 -- b FloatingPoint/floating point
F<= flt1 flt2 -- b FloatingPoint/floating point
F<> flt1 flt2 -- b FloatingPoint/floating point
F= flt1 flt2 -- b FloatingPoint/floating point
F> flt1 flt2 -- b FloatingPoint/floating point
F>= flt1 flt2 -- b FloatingPoint/floating point
FABS flt -- |flt| FloatingPoint/floating point
FAE -- ^AE events/Nuc.asm
A value used to handle AppleEents.
FALSE -- b Arithmetic/Nuc2.asm
A constant = 0
FCALL -- Toolbox/tool.txt
As for CALL, except must be used for low level File Manager
toolbox calls. Will properly setup A0 befor the call
and return D0 (the result). See IM II-98. Note also that
the returned result will always be a long, regardless of
the information in IM, so the stack need not be realigned
after this call. See example use in file event.
FCON flt -- : name FloatingPoint/Nuc2.asm
Fp analog of constant.
FCONV? addr len -- flt T | -- F FloatingPoint/floating point
Converts the passed-in ASCII string to floating, if possible. I like
this name better than ATOF which Neon had, but change it back if you
want to.
FDOS$ -- : trap# Toolbox/Base
Compiles a toolbox trap for I/O if the Tools module is not loaded. The
new syntax is, e.g.trap$ fdos$ A000
FDRECT -- obj system/Nuc.asm
A value. Unused?
FDROP flt -- FloatingPoint/floating point
FDUP flt -- flt flt FloatingPoint/floating point
fence -- addr Compiler/Nuc.asm
A value. Leaves the address below which forget will not operate.
fEvent -- obj Events/Event
The standard Mops event object. This event is the default (and should
be the only) Event object used by Mops. Actually defined in Nuc.asm, it
is set to class fevent in file events.
FFA class -- ffa OOPprimitive/Class
Given a pointer to a class, returns the flag field address.
fFcb -- obj files/Nuc2.asm
An object pointer that is set to class file in Files.
FILE -- : name Files/Files
A standard class. Used to call Toolbox file routines, has 138 bytes for
a file control block.
FILE-INSTALL fcb ftype signature -- Files/base
Set file type and signature.
FILE-MARK -- -300 Files/Files
A constant. Marks the start of a loaded file - we plant some useful
info there. We put the file name in the dic as if it's a definition
name, but use file-mark as a "handler code". Then after that we put the
useful info. See file extrasMod.
FILL addr n c -- Memory/Nuc2.asm
Beginning at address, fills n bytes with given 8-bit value c.
FIND str-addr -- xt flag | -- F Compiler/Nuc2.asm
Forth-83/ANSI standard. As in Neon, calls the vectored uFind first,
then simply returns if uFind returns a non-zero n. In all cases, if the
search succeeds, addr' is the xt of the found dictionary entry, and n
is -1 for a non-immediate word and 1 for an immediate word. If the
search fails, n is zero and addr' is the same as str-addr.
FIND-WINDOW Tpoint -- region ^window Events/Nuc2.asm
Calls the Window Manager routine FindWindow to find the window in which
a mouse-down event occurred at Tpoint, a Toolbox point in global
coordinates. Leaves the region of the window in which the mouse-down
occurred and ^window, the pointer to the window object's private data.
FINDM selID classl -- offs xt OOPprimitive/Class
Finds a method in a class.
FINFO -- addr /Nuc2.asm
NOTE: This is only valid for systems where no AppleEvents are
available. Therefore if they are available, we return a nil pointer.
Leaves a relative pointer to the Finder information area. The following
code will scan the information block, and print the Vref#, file type,
version and file name for each file passed by the Finder.
FLOAT> flt -- n FloatingPoint/floating point
Converts the float to an integer. Rounds.
FNEGATE flt -- -flt FloatingPoint/floating point
FNF -- -43 Files/Files
A constant. Mac File Manager result code fnfErr. File not found.
FOR limit -- ControlStructures/Nuc2.asm
Marks beginning of a FOR ... NEXT loop. These are simple loops that
have less overhead than DO loops. The loop index i counts down from
limit-1 to zero. The initial limit must be less than 64K. Uses a DBRA
loop instruction for speed. You can't LEAVE a FOR ... NEXT loop.
FORGET -- : word Compiler/Nuc2.asm
Deletes the word from the dictionary and ALL entries above it (i.e., in
higher memory). Issues message "in protected dictionary" if the word is
below fence, and aborts.
FORWARD -- : name Compiler/base
Creates a word which is to be defined later with :f, the special colon
compiler for forward-referenced Mops words, because :f makes the word
behave like a colon definition.
FOVER flt1 flt2 -- flt1 flt2 flt1 FloatingPoint/floating point
FPRECT -- obj system/Nuc.asm
A value. This leaves a system object of class rectangle used in
calculation for scrolling fWind.
FPU? -- n FloatingPoint/Nuc2.asm
A value. Set by a _Gestalt call in the startup code to the FPU status.
FREE -- System/Nuc2.asm
Glue routine for various toolbox calls, which is needed by the HANDLE
and PTR classes. Should not be called directly from anywhere else.
FREEBLK -- System/Nuc2.asm
Glue routine for various toolbox calls, which is needed by the HANDLE
and PTR classes. Should not be called directly from anywhere else.
FVALUE flt -- : name FloatingPoint/Nuc2.asm
Fp analog of value, can use prefix operators.
FWIND -- obj system/Nuc2.asm
The Mops console window, class window.
FWIND? -- b system/Nuc2.asm
A value. True if we're using fWind. Used to control which
interface Mops will use upon startup. Set to true or false
for the old(true) or new(false) interface, save the Mops
dictionary, and the corresponding interface will be in effect
at next launch.
FWINDACTIVE? -- b system/ObjInit
A value. True if fWind is the front, active window.
G->L point -- point' Quickdraw/Event
Convert a global point to a local point.
GENERAL -- OOP/Class
Optional class declaration that will allow late binding when this class
is used as an ivar. But note that GENERAL classes may not be used to
map ivars to Mac toolbox calls because the class header information
will be included. INDEXED classes are automatically GENERAL.
GestaltAvail? -- b System/Nuc2.asm
A value. Set True by the startup code if the Gestalt trap is available.
GETDIRID -- dirID Files/Files
Returns the dirID of the last directory opened by a standard file call.
This is merely the contents of the Mac global variable CurDirStore.
GETDLEN obj -- n OOPprimitive/Class
Gets length of object's named ivars.
GETHSZ -- n System/Nuc2.asm
Glue routine for various toolbox calls, which is needed by the HANDLE
and PTR classes. Should not be called directly from anywhere else.
GETRES type resID -- handle Resources/base
Calls GetResource.
GETSPACE -- System/Nuc.asm
A system vector.
GETSTRING id -- addr len Resources/Base
Gets the string from the mops.rsrc file with the given resource ID.
GLOBAL -- addr : globalname ToolBox/tool.txt
When followed by the name of a Mac system global variable, leaves the
memory location. Example: global ticks @ returns the number of ticks
since system startup.
GOTOXY x y -- QuickDraw/Nuc2.asm
Calls toolbox MoveTo.
GOTPARMS? -- rc Events/Nuc2.asm
This can be called at the end of a handler, to check if we got all the
parameters.
GRAPHPORT -- : name Quickdraw/QD
A standard class. Used to map into the QuickDraw GraphPort record. But
note that most record members are not named.
HANDLE -- : name OOP/Struct
A standard class.
HANDLEARRAY #elems -- : name OOP/Struct
A standard class. HANDLEARRAY and HANDLELIST are for the implementation
of collections of heap-based objects. HandleArray has normal array
properties. Use HandleList if the number of elements may grow
arbitrarily large, and if indexing isn't so important. HandleArray also
includes methods to allow the array to be used as a stack - needed for
FileList.
HANDLELIST #elems -- : name OOP/Struct
A standard class. HANDLELIST allows the implementation of a list of
heap-based objects. Unlike HANDLEARRAY, the list can be of indefinite
length. We use a heap block to store the handles to the objects
contiguously, rather than have a separate block for each handle and
link them together. This saves on memory overhead and reduces the
number of memory manager calls. It also reflects the assumption that
insertions and deletions into the middle of the list will be
infrequent, as these could be more inefficient than with a linked
scheme. We expect that elements will normally be added to the end, and
probably not removed at all, or not very often.
HASH str255 -- n Compiler/Nuc2.asm
Hashes the str255 format string into a 32-bit hash value. Names of
selectors and instance variables are hashed to conserve space.
HEADROOM -- n Compiler/Nuc2.asm
Returns the number of bytes still available in the dictionary below the
upper HiBase (A4) addressing limit. Code will be a little less
efficient above this limit.
HERE -- addr Compiler/Nuc2.asm
Returns the next available dictionary location.
HEX -- Arithmetic/Nuc2.asm
Sets base to 16.
HFS? -- b Files /Files
Returns true if using the Mac Hierarchical File System (Inspects the
global variable FSFCBLen).
HGetSt -- state System/Nuc2.asm
Glue routine for various toolbox calls, which is needed by the HANDLE
and PTR classes. Should not be called directly from anywhere else.
HIDE -- Compiler/Nuc2.asm
Replace Smudge in Neon. HIDE hides the last dictionary header so that
FIND won't find it. REVEAL brings it back again. Use this if you want
the previous use of the name, i.e. if you DON'T want recursion.
HidePen -- Quickdraw/QD
A direct call to HidePen.
HL-EVT -- false Events/Event
An action word for fevent. Handles High-level events. Several vects are
involved.
HLD -- addr System/Nuc2.asm
This value is the address of the latest Hold character during numeric
output conversion.
HLEventVEC -- Events/Event
A vect. Called for generic high-level events. Default is vfalse.
HOLD c -- NumericConversion/Nuc2.asm
Inserts the character into a string being built by a <# ... #>
sequence. standard
HOME -- Console/Nuc2.asm
Moves the cursor to the upper left corner of the current window.
HSetSt state -- System/Nuc2.asm
Glue routine for various toolbox calls, which is needed by the HANDLE
and PTR classes. Should not be called directly from anywhere else.
HWPavail? -- b System/Nuc2.asm
A value. Set True by the startup code if the HWPriv trap is available.
I -- n ControlStructures/Nuc2.asm
We keep the loop index I in D3, but the return stack is entirely in
memory so that words can be called simply with BSR/JSR. This means that
I can be used in words called from within DO loops. In fact I can be
used as another local variable.
I->L 16-bit-number -- 32-bit-number Toolbox/Nuc2.asm
Converts the 16-bit half-cell on top of stack into a full 32-bit Mops
cell, extending the sign bit. i->l is useful in handling the result
from Macintosh ROM routines that return a 16-bit signed integer on the
stack. i->l differs from Extend in that i->l pushes two bytes onto the
stack while extending the sign, whereas extend only extends the sign of
a 16-bit integer contained in the 32-bit cell on top of stack,
converting it into a 32-bit signed integer. Word0, a related word,
pushes two zero bytes onto the stack.
I/O_ERR err# -- Errors/base
A forward definition to be called when there is an io error.
IBEAMCURS -- Quickdraw/QD
Sets the cursor to this.
IDXBASE -- addr Oop/Nuc2.asm
Returns the address of the beginning of the data for an indexed
object's indexed data area. Only use in a class definition.
IF ? -- ControlStructures/Nuc2.asm
Marks the beginning of an IF... THEN or IF ... ELSE ... THEN program
flow sequence.
IFA class -- ifa OOPprimitive/Class
Given a pointer to a class, returns the ivar field address.
IMMEDIATE -- Compiler/Nuc2.asm
standard
INDEXED n -- OOP/Class
Sets a class and its subclasses to indexed, of element byte width n.
Used after the superclass declaration list when defining a new class.
Note that when instantiating an indexed class, you MUST precede the
instance name with the number of elements you wish that instance to
have. Also note that all indexed classes are automatically declared to
be GENERAL, so you may not used indexed classes to map into toolbox
calls. Also, n must be < 32K (see LARGE).
INDEXED-OBJ -- : name OOP/Struct
A standard class. Class INDEXED-OBJ is the generic superclass for all
arrays. Here we define the general indexed methods, which apply
regardless of indexed width.
INFRONT -- -1 Windows/Window
A constant.
INITFONT -- System/Window
Initializes text characteristics.
INITFW -- System/Nuc1.asm
Initializes the default window fWind.
INITZED? -- b system/Nuc2.asm
Set True by the startup code, to indicate that the normal startup
initialization has been done. Can be inspected after a bomb box restart
to determine if this is an initial startup or not. A value.
INIT_ACTIONS -- FrontEnd/Struct
A system object, of class x-col, with 8 elements. Any special run-time
initialization can be done conveniently by adding the appropriate words
to the x-col INIT_ACTIONS. These words will be executed on startup via
EXTRA_INITS, right after OBJINIT.
INLINE{ -- : word ... } Compiler/args
Commences a piece of inline code. Allows faster execution. We assume
that inline code chunks will be fairly short, and are to be optimized
for speed.
INLMK -- $4AFC System/Nuc2.asm
A constant.
InMainDic -- 0 Compiler/base
A relocatable address type.
InOtherMod -- 1 Compiler/base
A relocatable address type.
INSTEAD c-old c-new -- Strings/StrUtilities
May be used just after a SCON is defined. Within the SCON, it replaces
any occurrences of c-old with c-new. This operation is useful for
creating SCONs containing special characters such as tab.
INSTLD? -- b system/Nuc2.asm
A value. Set True if an installed application is running. Can be
useful. Very useful.
INT -- : NAME OOP/Struct
The standard integer class. See also UINT.
INTERPRET -- System/Nuc1.asm
INTERPRET is the interpretation loop. Words from the input stream are
interpreted until the input is exhausted.
InThisMod -- 2 Compiler/base
A relocatable address type.
INTRP1 -- : word Compiler/Nuc2.asm
Interprets one word/number from the input stream.
INVERT ( x1 -- x2 ) Core/Nuc2.asm
Invert all bits of x1, giving its logical inverse x2.
IOWAIT -- Files/Files
Repeatedly calls busy and pause, will exit if busy returns false.
IS{ 240 index -- index here 240 Controlstructures/Modules
Used in a select{ construct.
IVFINDM selID ^ivar -- offs xt OOPprimitive/Class
Looks for a method in
IX -- ifa OOPprimitive/Class
Called from within an inline method. Compiles code to generate the
indexed address.
J -- n ControlStructures/Nuc2.asm
Index value for the next outer DO ... LOOP control structure.
K -- n ControlStructures/Nuc2.asm
Index value for the 2nd outer DO ... LOOP control structure.
KEY -- c Events /Nuc.asm
A system vector. The action of key is normally (key). (key!) is used to
set the default action for key.
KEY! -- Events/Nuc.asm
A system vector.
KEY-EVT -- keywd modswd T | -- F Events/Event
An action word for fevent. Gets key value if true. Handles command-key
menu actions. Does not handle "normal" key actions, that is up to your
code.
KILLH -- System/Nuc2.asm
Glue routine for various toolbox calls, which is needed by the HANDLE
and PTR classes. Should not be called directly from anywhere else.
KILLP -- System/Nuc2.asm
Glue routine for various toolbox calls, which is needed by the HANDLE
and PTR classes. Should not be called directly from anywhere else.
KONST -- n : konstName ToolBox/tool.txt
Returns a Mac system constant. For example, konst kAEQuitApplication
will return the event id 'quit' on the stack.
L->G point -- point' Quickdraw/Event
Convert a local point to a global point.
LARGE -- OOP/Class
Sets the "large" option on an indexed class, allowing the number of
elements to be greater than 32K.
latest -- nfa-1 Compiler/Nuc.asm
A value. Leaves the nfa-1 of the last defined word.
LEAVE -- ControlStructures/Nuc2.asm
There is also a change to LEAVE, which is now a "leaping LEAVE". When
LEAVE is executed, it now causes the loop to be left immediately,
rather than waiting until the next time LOOP is encountered.
LENGTH: -- len OOP/Class
A method. Gets total length of object. Length will include class header
information only if class is of type GENERAL. Otherwise, length is
merely the length of the ivar data field(s).
LIMIT -- n Oop/Nuc2.asm
Returns the maximum numbr of elements in an indexed class. Only used in
a class definition.
Line dh dv -- Quickdraw/QD
A direct call to Line.
LineTo h v -- Quickdraw/QD
A direct call to LineTo.
LIT n -- Compiler/Base
A state-smart version of LITERAL. Corresponds to LITERAL in Fig-Forth
or original Neon, whereas our present LITERAL is Forth-83.
LITERAL n -- System/Nuc2.asm
standard
LITW n -- Compiler/Base
LN flt1 -- flt2 FloatingPoint/floating point
Computes the natural logarithm.
LN(10) -- flt FloatingPoint/floating point
An fcon. Returns the natural logarithm of 10, 2.302...
LN1 flt1 -- flt2 FloatingPoint/floating point
ln(1+x)
LOCAL -- : name { parm1 parm2 \ loc1 loc2 } Memory/args
Begins definition of a local section. Within a local section, all words
have access to the parms/locals.
LOG flt1 -- flt2 FloatingPoint/floating point
Log base 10 of given float.
LOG2 flt1 -- flt2 FloatingPoint/floating point
Computes the base 2 logarithm.
LOG21 flt1 -- flt2 FloatingPoint/floating point
log2(1+x). I don't think LOG21 is a very helpful name (pure
computerese), but I guess we're stuck with it.
LOK -- System/Nuc2.asm
Glue routine for various toolbox calls, which is needed by the HANDLE
and PTR classes. Should not be called directly from anywhere else.
LONGWORD -- : name OOP/Struct
A standard class. Generic superclass for var, handle etc.
LOOP -- ControlStructures/Nuc2.asm
Marks end of DO ... LOOP structure.
MAKEINT 32-bit-num -- 16-bit-num Toolbox/Nuc2.asm
Drops the higher 16 bits of the number on top of the stack. This is
handy in Toolbox calls that require an Int value.
MAX n1 n2 -- max Arithmetic/Nuc2.asm
MAXDIC -- n Compiler/Nuc2.asm
A value used by the startup code - set to the value specified for the
dictionary size in the Install dialog.
MBADDR -- addr Menus/Event
We store our menubar reference here.
MBAR -- : name Menus/Menu
A standard class. The Mops class for handling the menubar, contains an
array of up to 10 menu objects. The default Mops mbar object is
menubar, which is stored in the dicaddr object MBaddr.
MENU -- : name Menus/MenuMod.txt
A standard class, subclass of x-array. The Mops object oriented
approach to handling menus.
MENUBAR -- obj Menus/Menu
Our default mbar object, stored in MBaddr.
META -- class OOPprimitive/Class
META is the super class of Object - top of all inheritance.
MFA class -- mfa OOPprimitive/Class
Given a pointer to a class, returns the methods field address.
MIN n1 n2 -- min Arithmetic/Nuc2.asm
MINHEAP -- n Compiler/Nuc2.asm
A value used by the startup code - set to the value specified for the
heap size in the Install dialog.
MLOCAL -- : name { parm1 parm2 \ loc1 loc2 } Memory/args
Starts a local section for methods. See local.
MOD n1 n2 -- rem Arithmetic/Nuc2.asm
Leaves remainder of division of n1 by n2.
MOUSE -- : name Events/Event
A system class for dealing eith the mouse and events. Our Mops mouse
object is theMouse.
MOUSE-EVT -- false Events/Event
An action word for fevent. Handles mouse events.
MouseMoved -- Events/Event
A vect. Called for mouse moved.
MOVE src dest cnt -- Memory/Nuc2.asm
As for CMOVE, but n may be anything. Implemented by calling the system
BlockMove trap. This gives optimized handling of longer moves (n > 20
say). Also accounts for situations where the source and destination
areas overlap. If you want byte propagation effects, use CMOVE instead.
But what would you want this for, anyway, since we have FILL?
MOVEPEN dv dh -- Quickdraw/QD
A direct call to Move.
MoveTo h v -- Quickdraw/QD
A direct call to MoveTo.
MROPEN? -- b System/Nuc2.asm
A value. True if the file mops.rsrc was successfully opened.
MSELECT point -- item# menuID Menus/Menu
Calls menu manager MenuSelect to track a menu selection.
MSG# -- : lit Errors/base
Displays given string number (a literal) from the mops.rsrc file,
preceded by "Msg# ..."
MvHHi -- b System/Nuc2.asm
Glue routine for various toolbox calls, which is needed by the HANDLE
and PTR classes. Should not be called directly from anywhere else.
MWORD -- addr Lowstrings/Nuc2.asm
"Mops word". Called by DEFINED? which is called by INTERPRET. Calls
WORD with a blank as delimiter, and converts the string to upper case.
Leaves counted string at addr (will be HERE).
MyDoc -- addr len Frontend/Files
Front end support for loading files.
MyDocName -- str255 Frontend/Files
A variable with 28 bytes allotted.
N>COUNT nfa -- addr len Compiler/Nuc2.asm
Leaves the address and length of a name field, suitable for use by
"type".
NAME? addr -- addr b Compiler/Nuc2.asm
Returns True if the passed-in addr appears to be a xt with a
corresponding valid name field.
NEED -- : filename System/Extrasmod.txt
Will load the named file, if the file is in our path definition. Put
NEED XXX at the start of a file that requires XXX to be already loaded.
If the word XXX is not defined, a file of that name is loaded. Note
that only one blank or tab is allowed between NEED and the filename.
This is because we use WORD" to read the filename, so that names with
embedded blanks are allowed.
NEG> -- : word Arithmetic /args
A prefix operator. Negates. Use for values, local variables, named
input parameters. Also works for floats.
NEGATE n -- -n Arithmetic/Nuc2.asm
Changes the sign of n.
NEWH n -- b System/Nuc2.asm
Glue routine for various toolbox calls, which is needed by the HANDLE
and PTR classes. Should not be called directly from anywhere else.
NEWP n ^ptr -- b System/Nuc2.asm
Glue routine for various toolbox calls, which is needed by the HANDLE
and PTR classes. Should not be called directly from anywhere else.
NEWVECS -- System/Frontend
Sets various system vectors to be compatible with the new Mops
interface. See OLDVECS.
NEXT -- ControlStructures/Nuc2.asm
Marks end of a FOR ... NEXT loop. See FOR.
NEXTEVENT ^event mask -- b Events/Nuc2.asm
We call WaitNextEvent if it's available, otherwise GetNextEvent.
NEXT_TASK -- Events/Event
A vect. If multitasking is installed, this will be redirected to do a
task switch.
NIF ? -- Controlstructures/Nuc2.asm
Like IF except execution occurs when ? is zero.
NILH -- $FFA00101 Memory/Nuc2.asm
A constant. The value we use for a nil handle.
NILP -- $FFA00103 Memory/Nuc2.asm
A constant. The value we use for a nil pointer.
NIP n1 n2 -- n2 Stack/Nuc2.asm
Removes stack item just under top.
NOMEM -- Errors/base
A forward definition to be called when (not if!) we run out of memory.
NOT b -- -b Arithmetic/Nuc2.asm
Reverses the sense of a boolean.
NOT> -- : word Arithmetic /args
A prefix operator. Logically nots. Use for values, local variables,
named input parameters. Not for floats.
NPTR -- ptr System/Nuc2.asm
Glue routine for various toolbox calls, which is needed by the HANDLE
and PTR classes. Should not be called directly from anywhere else.
NULL -- System/Nuc2.asm
A word that does nothing.
NULL-EVT -- false Events/Event
An action word for fevent. Will send late bound idle: to the actW, if
it is non-zero.
NULLOSSTR -- xt System/Base
Null OS string. Can be used in toolbox calls that require a Str255
data type that is null. For example, the title for a scrollbar.
NUM? addr -- n true | -- false Console/Nuc2.asm
NumAccumulate -- Arithmetice/Nuc.asm
File LongMath revectors numAccumulate to give a genuine double result
for words like >NUMBER. A system vector.
NUMBER $ptr -- n Console/Nuc2.asm
Attempts to convert the text at $ptr (a str255) to a number. If
successful leaves the number on the stack, otherwise aborts.
NUNTIL ? -- ControlStructures/Nuc2.asm
Similar to until. Stop if ? is-zero.
NWHILE ? -- ControlStructures/Nuc2.asm
Similar to while. Continue if ? is zero.
OBJ -- obj OOPprimitive/Class
Called from within an inline method. Passes the object's base and
displacement to Handlers to generate the correct address. Optimization
will then apply.
OBJ? obj? -- obj? class | -- obj? 0 Compiler/Nuc2.asm
General test for an object. Not completely rigorous, so we shouldn't
use it in a TRAV, but pretty good nevertheless. If it is an object, the
class is left in theClass. We do assume the passed-in value may not be
a legal address at all.
OBJECT -- class OOP/Class
The root class of all classes. Only used as a declared superclass when
defining a new class. Note that class object has the pre-defined
methods class:, .id:, .class:, addr:, length:, copyto:, classinit:,
release:, dump:, and print:. So ALL objects possess these methods. Some
of these methods do nothing, for class object.
ObjFindM selID obj -- obj' xt Compiler/Nuc2.asm
Finds a method's xt given a sel ID and an obj addr. Updates the
object's address if necessary - this will happen if the method turns
out to belong to a superclass with a non-zero offset in the object -
i.e. an embedded object.
OBJHANDLE -- : name OOP/Struct
A standard class. An OBJHANDLE is a handle that points to an object in
the heap.
OBJINIT -- System/Nuc.asm
A system vector. Normally contains sysinit, defined in file Objinit.
OBJLEN -- n Oopprimitive/Class
Computes total data length of current object.
OBJPTR -- : name OOP/Nuc2.asm
An object pointer is a "low-level" entity, rather like a value. The
syntax for object pointers is: objPtr anObjptr class_is theClass
OBJxt? xt -- xt b Compiler/Nuc2.asm
Returns true if the xt refers to a dictionary object. Note: this won't
work for a heap object, since we rely on the unique handler code for
objects being there, and it won't be for heap objects. But this is the
only way to get a really rigorous check, which we need for TRAV. We
assume xt is really a xt.
OBJ_ARRAY #elems -- : name OOP/Struct
A standard class. OBJ_ARRAY is a generic superclass which makes it easy
to generate an array of objects of a given class. Just define a new
class which multiply inherits from the given class (or classes) and
OBJ_ARRAY (which must come last). This will add an indexed section to
each object of the new class, with elements wide enough to contain
objects of the original class. Then SELECT: "switches in" the selected
element to be the "current" element, and all the normal methods of the
class can then be used. Note the use of"32767 indexed" in the class
definition.
OF n1 n2 -- | n1 ControlStructures/base
Use within a CASE structure. Yields n1 and jumps to beyond next ENDOF
if no match.
OK -- Compiler/Nuc2.asm
Prints the Mops prompt, commonly 0->.
OK? rc -- Files/base
A useful word to use after an I/O operation.
OLDVECS -- System/Frontend
Sets various system vectors to be compatible with the old Mops
interface. See NEWVECS.
OpenAppVec -- code True | -- False Events/Nuc.asm
As set up in Mops, OpenAppVec simply returns False and does nothing
else.
OpenDocVec -- code True | -- False Events/Nuc.asm
OpenDocVec finds the number of files in the given list of files, and
puts the number in the value #DocsToOpen. It then handles each file in
the given list fFcb, then calling the sufficient for your appropriately.
OPENMR -- Resources/Base
open the Mops system resource file (mops.rsrc) if necessary.
OpenResFile addr len -- Resources/Base
Opens named resource file.
OPT? -- b System/Nuc2.asm
A value. Disables optimization if set False. Normally True. Set it
False if you have an obscure bug, to check if the optimization is
generating invalid code.
OR n1 n2 -- or Arithmetic/Nuc2.asm
OR> n -- : word Arithmetic /args
A prefix operator. Logically ors with n. Use for values, local
variables, named input parameters. Not for floats.
ORDERED-COL #elems -- : name OOP/Struct
A standard class. Ordered-Collection is a collection of 4-byte cells. A
subclass of (col) and array.
OS-EVT -- false Events/Event
An action word for fevent. Handles operating system events by calling
various vects.
OVER n1 n2 -- n1 n2 n1 Stack/Nuc2.asm
Same as 1 pick.
PACK x y -- x:y Toolbox/Nuc2.asm
Packs two 32-bit numbers into one 32-bit number. Only the lower 16 bits
of x and y are used. You can use pack to convert a coordinate point
into a Toolbox-compatible point.
PAD -- addr system/Nuc2.asm
Leaves the address of the text output buffer, a temporary area of
memory of 256 bytes. Mops uses PAD to hold information (text, numbers)
for intermediate processing. You may use it to the same end, but be
aware that output words like emit and type may interfere by using pad
as well.
PARSE-DLM-STR addr1 addr2 len -- b Lowstrings/Nuc2.asm
Scans the source for a string delimited at the start and end by c.
Everything is skipped before the first delimiter. If the source gets
exhausted in the process, QUERY is called to get more.
PARSE-SRC c -- addr len Lowstrings/Nuc2.asm
Scans the source for delimiter c. Returns the addr and len of the
parsed string, and updates the source.
PARSE-SRC-WORD c -- addr len LowStrings/Nuc2.asm
As for PARSE-SRC, but any consecutive initialdelimiters are skipped. If
the input is exhausted in the process, QUERY is called to get more.
PARSE-WORD c -- addr len LowStrings/Nuc2.asm
Skip leading spaces and parse name delimited by a space. As for PARSE,
but skips leading delimiters. If the input is exhausted in the process,
REFILL is called to get more.
PATCHES_DONE -- Compiler/Nuc2.asm
If you ever need to patch instructions, call this when you're finished.
It flushes the instruction cache if necessary to make sure that the new
instructions will really be executed. PATCH and (PATCH) call it
already, so if you are using these, you don't need to call Patches_done.
PATTERN -- : name Quickdraw/QD
A system class, subclass of resource.
PAUSE -- Events/Nuc.asm
A system vector, normally contains (pause), defined in file Frontend.
PAUSE should be called at strategic intervals in all applications,
unless Key is being called frequently. Pause normally calls next:
fEvent which allows a task switch to be done under MultiFinder, and
which also handles any pending events for this task, such as window
updates. Remember to disable any menus etc. that you don't want to
execute in this situation! Unexpected re-entrancy is a good way to bomb!
PCRVEC -- System/Nuc2.asm
This system vector is the execution vector for pcr. When Mops starts
up, pcrvec is vectored to null, Mops's "do-nothing" word. +print
vectors pcrvec to pcr so that you or Mops can send a carriage return
and linefeed to the printer.
PEMITVEC -- System/Nuc2.asm
This system vector is the execution vector for pemit. When Mops starts
up, pemitvec is vectored to drop. +print vectors pemitvec to pemit so
that you or Mops can send a character to the printer.
PI -- flt FloatingPoint/floating point
An fcon. Returns 3.1415...
PICK ... idx -- ... n Stack/Nuc2.asm
Given a zero-based index into the stack, will copy the requested cell
to the top of the stack. Stack depth increases by one. 0 pick is
equivalent to dup.
PLACE addr1 len addr2 -- Lowstrings/Nuc2.asm
Converts string ( addr1 len ) to a counted string at addr2. Appends a
zero byte.
PLUSCURS -- Quickdraw/QD
Sets the cursor to this.
POINT -- : name Quickdraw/QD
A standard class for dealing with QuickDraw points. Note that Mops
prefers to treat all points and operations with points as 2 items on
the stack, rather than a single packed 32-bit number.
POPPORT GrafPtr -- Quickdraw/QD
Calls SetPort.
POSTPONE -- Compiler/Nuc2.asm
In this system, compilation is done by executing the compilation
handler for the word in question. POSTPONE must therefore be immediate,
and compile the right code into the client definition. This code
consists of a literal push of the POSTPONEd word's xt, then a call to
(COMP).
PRINT: -- OOP/Class
A method. Use to display a class, default is just a DUMP:.
PrintDocVec -- code True | -- False Events/Nuc.asm
As set up, Read1DocVec assumes the file is a Mops dictionary.
Read1DocVec must point to a routine which will read the file designated
by the file object fFcb, close it, and return a result on the stack.
True indicates the OpenDocVec loop can continue. False means the loop
must terminate. You could return False, for example, on an error, or
simply if your application can't accept more than one document open at
a time.
PRIVATE -- OOP/Class
Use within a class definition. Makes the following methods private—that
is, they will be accessible from within this class or any of its
subclasses, but not from anywhere else. The criterion is simply that a
call to Self of Super may access a private method, but nothing else
can. Note that for this reason you can't late-bind to a private method,
even if you do it from within the class itself.
PROCESSOR -- n System/Nuc2.asm
A value. Set by a _Gestalt call in the startup code to the number
corresponding to the processor we are running on.
PROMPT? -- b Console/Frontend
A value. If true the Mops prompt ( e.g. 0->) will be displayed after
interpretation in the new Mops interface.
PSPVEC n -- Console/Nuc2.asm
Printer spaces vect. A system vect that might be used to send n
spaces to the printer if +print has been executed. It currently
does nothing.
PTR -- : name OOP/Struct
A standard class. For toolbox pointers.
PTYPEVEC addr len -- System/Nuc2.asm
This is the execution vector for ptype. When Mops starts up, typevec is
vectored to 2drop, so that it does nothing. +print vectors ptype to
ptypevec, so you can send a string to the printer.
PUBLIC -- OOP/Class
Makes the following methods public—that is, they will be accessible
from anywhere. PRIVATE and PUBLIC may be used any number of times
within the one class definition. Methods are initially public when a
class compilation starts.
PUSHPORT -- GrafPtr Quickdraw/QD
Pushes the current Graphport onto the stack as a GrafPtr. Calls GetPort.
QUERY -- System/Nuc2.asm
A system vector. Inputs up to 128 characters from the keyboard until a
carriage is typed. Query puts the acquired text at the address TIB and
sets the value IN to zero.
QUIT -- Compiler/Nuc2.asm
standard
QuitAppVec -- code True | -- False Events/Nuc.asm
The current setting for QuitAppVec is simply to call BYE. Your
application will probably want to do something a bit more intelligent.
QUITVEC -- System/Nuc.asm
A system vector. Called by QUIT. When OLDVECS are in effect, QUTVEC is set
to 0 and so does nothing. When NEWVECS are in effect (the new Mops interface),
QUITVEC is used to allow re-entry into EVENTLOOP with the new interface.
R -- n Stack/Nuc2.asm
Copies the top return stack value to the stack.
R> -- n Stack/Nuc2.asm
Pops the top return stack value to the stack.
R@ -- n Stack/Nuc2.asm
RA? addr -- b Compiler/Nuc2.asm
Returns True if the addr looks like a return address.
RAD2DEG flt1 -- flt2 FloatingPoint/floating point
Converts radians to degrees.
RANDOM n -- rand*n Arithmetic/QD
Returns a random number from 0 to n-1 inclusive. n is limited to an Int
value. Larger than that means that numbers will be poorly distributed.
Uses the Toolbox call Random, but is not the same.
RANGEOF val lo hi -- ControlStructures/base
Use in place of an OF in a CASE structure. Provides conditional
execution if val is within range lo to hi inclusive.
RANGE], val lo hi -- ControlStructures/casemod.txt
Use in a CASE[ structure. Will OR this condition with any other
condition like [ x ], and [ y ]=>
RANGE]=> val lo hi -- ControlStructures/casemod.txt
Use in a CASE[ structure.
RANGE_ERR index range rtn-addr -- Errors/base
Action word for system vector rngErr.
RDEPTH -- #cells ReturnStack/base
Leaves the number of cells occupied on the return stack. You may find
rdepth useful in debugging your programs.
Read1DocVec -- code True | -- False Events/Nuc.asm
As set up, Read1DocVec assumes the file is a Mops dictionary.
Read1DocVec must point to a routine which will read the file designated
by the file object fFcb, close it, and return a result on the stack.
True indicates the OpenDocVec loop can continue. False means the loop
must terminate. You could return False, for example, on an error, or
simply if your application can't accept more than one document open at
a time.
RECT -- : name Quickdraw/QD
A standard class for dealing with QuickDraw rectangles. Note that Mops
prefers to treat rectangles, and all QuickDraw coordinates for that
matter, in the form LEFT TOP RIGHT BOTTOM (l t r b), or x1 y1 x2 y2.
RECURSE -- wherever/Compiles a call to the definition being compiled.
REFILL -- flag Core/Nuc2.asm
Attempt to refill the input buffer from the input source, retuning a true
flag if successful.
RELCNT -- n OOP/Struct
A value. For testing - counts release: msgs sent to HANDLE objects to make
sure we're releasing everything. Won't be valid if you override release:
RELEASE: -- OOP/Class
Our standard destructor method. Any objects that allocate heap storage
will redefine this appropriately. Our convention is that an object will
release ALL its storage when it gets a release: message. Other methods
can be provided to partly release storage, as needed.
RELOC! src dst -- Compiler/Nuc2.asm
Converts the source address abs-addr to relocatable and stores it at
the destination address dst. Checks that a module address is not being
stored outside a module, a situation which can easily lead to a trouble
when the address is used
RELOC, abs-addr -- Compiler/Nuc2.asm
Converts abs-addr to relocatable, and adds it to the dictionary.
RelocType ^reloc-addr - n Compiler/Nuc2.asm
Returns the relocation type of the given relocatable addr. 0 = main
dic, 1 = in a module (a5-relative), 2 = in a module (self-relative).
REPEAT -- ControlStructures/Nuc2.asm
Standard. Marks bounds of BEGIN ... XXX ... REPEAT loop.
RESERVE n -- Compiler/base
Allotsthe next n bytes in the dictionary and erases them.
RESOURCE -- : name OOP/Struct
A standard class. Provides basic support for Toolbox resources.
ResRefNum -- n Resources/Base
A value. Used by OpenResFile as holding place for the resource file
reference number for use by CloseResFile.
RESTORE-INPUT x1...xn n -- Compiler/Base
Restores the current position in the input stream.
RESTPORT -- Windows/Window
Restores the current GrafPort from the variable thePort via a call to
SetPort.
RESUME? -- b Events/Event
A value. True if we've just received a Resume event.
ResumeVec -- Events/Event
A vect. Called for resume.
RET -- 13 Strings/String
A constant, returns ascii value of a carriage return character.
REVEAL -- Compiler/Nuc2.asm
Makes the current name visible again. See hide.
RL -- Files/Extrasmod.txt
Reload. Reloads last file loaded. First forgets down to last file mark.
Development-only utility.
RNDWIND -- 16 Windows/Window
A constant.
RNGERR -- System/Nuc.asm
A system vector. Contains range_err, which is defined in file Base.
ROOM -- n Compiler/Nuc2.asm
Leaves the number of bytes left in the dictionary.
ROT n1 n2 n3 -- n2 n3 n1 Stack/Nuc2.asm
ROUND flt1 -- flt2 FloatingPoint/floating point
Rounds the given float to the nearest integer by the normal rules. Of
course we still have a float.
RP! addr -- Stack/Nuc2.asm
Stores addr into RP0.
RP0 -- addr stack/Nuc2.asm
A value. Contains the base address of the return stack.
RP@ -- addr Stack/Nuc2.asm
Returns the address of the top of the return stack before rp@ is
executed.
RSTA5 -- Compiler/Base
Used for trap compilation. Used after a Toolbox trap call. Registers A6
and A7 must be exchanged again and A5 set back.
RSTKSPACE -- n System/Nuc2.asm
A value. Used by the startup code to allocate space for the return
stack. Initial value: 30000.
run -- System/Frontend
System startup word for the Mops development environment.
S= addr1 len1 addr2 len2 -- b Strings/Nuc2.asm
Case sensitive string comparison, true if equal.
S>D ( n -- d ) Core/Nuc2.asm
Convert the number n to the double-cell number d with the same numerical
value. ANSII
SAmask -- n memory/Nuc2.asm
A value. If you need to call _StripAddress, don't bother, we've done it
for you. Just use SAmask as a mask on the address as in SAmask and.
SAVA5 -- Compiler/Base
Used for trap compilation. Sets up for a Toolbox trap call. Registers
A6 and A7 must be exchanged and A5 set properly.
SAVE -- : filename System/Files
Saves the Mops dictionary image to disk with the given filename.
SAVE-INPUT -- x1...xn n Compiler/Base
Saves the current position in the input stream.
SaveActW -- wptr Events/Window
Saves actW over Suspend-Resume.
SAVEPORT -- Windows/Window
Saves the current GrafPort in the variable thePort via a call to
GetPort.
SCAN addr len c -- addr' len' Lowstrings/Nuc2.asm
May well be in the ANSI standard. Searches the string ( addr len ) for
the character c. Leaves addr' the address of the found char, and len'
the remaining string length. If not found, addr' will be one past the
end of the string, and len' will be zero. Assumes len is less than 64K
(only 16 bits significant). Class String+ provides a more complete
character search in its chsearch: method, which has case handling and
32-bit length.
SCAN-SRC c -- Lowstrings/Nuc2.asm
Does a SCAN on the current source, and leaves the source descriptors
(src-addr src-len) updated.
SCON -- : name text Strings/base
Defines a string constant. Change from Neon: the first nonblank char
after the name of the SCON is the delimiter. So " can be used as usual,
but anything else can be used instead, e.g.: scon <name> /string
containing " as non-delimiter/
SCREATE addr len -- Compiler/Nuc2.asm
An interface to Create; takes an addr-len pair representing a string.
SCREENBITS -- l t r b QuickDraw/Struct
Gets dimension coordinates of host machine's display via the Mac global
variable screenbits.
SCROLL dh dv -- Console/Nuc2.asm
Scrolls the current window by dh dv pixels. Uses fprect and ScrollRect.
SELECT{ n -- Controlstructures/Modules
SELECT{ defines a positional case construct - see Forth Dimensions vII
p.51. It is smaller and faster than the equivalent CASE or CASE[ construct,
as long as there are more than a couple of values. Values must be >= 0,
and we give a warning if a value > 50 is used, which could well be a
boo-boo. Note that a lookup table is constructed with 2 bytes for
every value in the range of highest to lowest test values. So be
careful when selcting test values. Also see CASE and CASE[.
example use:
...
SELECT{ x IS{ ... }END
y IS{ ... }END
DEFAULT{ ( DEFAULT{ is optional. Default actions go here, n is on the
stack at this point, you can use it but you must put *something*
back on the stack so }SELECT will have something to consume.)
}SELECT ...
SELF -- obj OOP/Nuc2.asm
Object reference to self. Only used in a class definition. SELF is not
necessarily the same as ^BASE, because of multiple inheritance.
SEQUENCE #elems -- : name OOP/Struct
A standard class. SEQUENCE is a generic superclass for classes which
have multiple items which frequently need to be looked at in sequence.
At present the main function of Sequence is to implement the EACH:
method, which makes it very simple to deal with each element. Sequence
can be multiply inherited with any class which implements the FIRST?:
and NEXT?: methods. The actual implementation details are quite
irrelevant, as long as these methods are supported.
SET-FILE fcb -- Files/base
Sets filename pointer in the FCB.
SETFWIND -- System/Nuc.asm
A system vector. Normally contains (sf), defined in file Objint.
SETNAME fcb -- : filename Files/base
Get filename from stream and set fcb.
SET_APPL_NAME addr len -- Install/FEmod.txt
Programmatically sets the application name to be used when installing.
SET_APPL_SIG 4bytestring -- Install/FEmod.txt
Programmatically sets the application signature to be used when installing.
SET_APPL_VERS addr len -- Install/FEmod.txt
Programmatically sets the version string to be used when installing.
SET_CLASS obj theClass -- Oopprimitive/Class
SET_CLASS is a utility word used to patch nucleus objects when their
classes are defined in higher-level files. Actually it could be used to
change the class of any object, if anyone is silly enough to want to do
that.
SET_TO_CLASS objptr -- : classname OOP/Class
If you need to declare the object pointer before the class exists, use
SET_TO_CLASS once the class is defined. :class SOMECLASS super{ object
} ' someOP set_to_class someClass etc.
SFA class -- sfa OOPprimitive/Class
Given a pointer to a class, returns the superclass field address, which
is an N-way pointer.
SFDlgHook -- ^proc Files/Files
A value. Used in std file calls. If non-zero, points to the proc to be
called while the std file dialog is up.
SFIND addr len -- addr' n Compiler/Nuc2.asm
As for FIND, except that the string for matching is designated by addr
and len.
SFLOC -- x:y Files/Files
Computes screen coordinates for top left of SF dialog box. Centers the
box horizontally, and a bit above the center vertically. Returns
coordinates as a packed 32-bit number.
SFOBJ -- obj Files/Files
A system object of class SFRec.
SFrec -- : name Files/Files
A standard class. Used to call Standard File Toolbox routines.
SHDR addr len -- Compiler/Nuc2.asm
Creates a header for the passed-in string.
ShowPen -- Quickdraw/QD
A direct call to ShowPen.
SIGN n -- NumericConversion/Nuc2.asm
standard
SIN flt1 -- flt2 FloatingPoint/floating point
Computes sine, given radians.
SKIP addr len c -- addr' len' Lowstrings/Nuc2.asm
Similar to SCAN, but searches for the first character not equal to c.
SKIP-SRC c -- Lowstrings/Nuc2.asm
Skips consecutive delimiters equal to c in the source.
SKIP-SRC+ c -- Lowstrings/Nuc2.asm
As for SKIP-SRC, but if a non-c character is not found, calls QUERY to
get another source line. This word is called by PARSE-SRC-WORD which is
called by WORD, and by doing things this way we can have xt lists etc.
extending over multiple lines.
SLEEPTICKS -- n Events/Nuc2.asm
A value. Used in calls to WaitNextEvent. Default is 20 as set by file
Frontend.
SOURCE-ID -- 0 | -1 Compiler/Nuc2.asm
A value. Identifies the input source as follows: SOURCE-ID Input source
-1 String \(via EVALUATE \) 0 User input device.
SP! addr -- Stack/Nuc2.asm
Stores addr into SP0. So we can reset the stack with SP0 SP!
SP0 -- addr stack/Nuc2.asm
A value. Contains the base address of the stack.
SP@ -- addr Stack/Nuc2.asm
Returns the address of the top of the stack before sp@ is executed.
SPACE -- Console/Nuc2.asm
Emits an ascii blank (32).
SPACES n -- Console/Nuc2.asm
Emits n ascii blanks. Calls spvec and pspvec.
SPVEC n -- Console/Nuc2.asm
A system vector. Will be (SPACES) for fwind, or XSPS for the
new Mops interface. Will display n spaces in the currrent window.
SQRT flt -- sqrt FloatingPoint/floating point
square root
SRC-ADDR -- addr system/Nuc2.asm
A value. The address of the current source text being interpreted.
SRC-LEN -- n system/Nuc2.asm
A value. The number of characters still unprocessed in the current
source line.
SRC-START -- addr system/Nuc2.asm
A value. The starting address of the current source line. Used by WORD.
SRCCOPY -- 0 Quickdraw/QD
A constant, equate for drawing mode.
SRCOR -- 1 Quickdraw/QD
A constant, equate for drawing mode.
SRCXOR -- 2 Quickdraw/QD
A constant, equate for drawing mode.
STATE -- compile-state Compiler/Nuc2.asm
This value is the compilation state of the Mops interpreter. A non-zero
value means that the definition of a word, method, or class is being
compiled.
STILLDOWN? -- b Events/Event
A direct call to StillDown. Returns true if mouse button is still down.
STKSPACE -- n System/Nuc2.asm
A value. Used by the startup code to allocate space for the stack. Set
from the Install dialog. Initial value: 30000.
STR255 addr len -- ^buf255 Strings/Base
Converts text beginning at addr for len characters to a str255 type
string at buf255, leaving the addr of buf255. Note that you should use
the string right away as the next call to str255 will overwrite the
buffer.
STRING -- : name Strings/String
A standard class. This class is changed radically from Neon! We now
keep two offsets into a string - POS and LIM. POS marks the "current"
position, and LIM the "current" end. Most string operations operate on
the substring delimited by POS and LIM, which we call the active part
of the string. We also keep the size of the string (the real size, that
is) in an ivar, so that we can get it quickly without a system call.
See also class string+.
STRING+ -- : name Strings/String+
A standard class, subclass of string. Provides many extensions.
SUPER -- obj OOP/Class
Use within a class method definition to refer to self, an instance of
the class, but the superclass method will be invoked.
SUPER( -- : cname1 cname2 } opt OOP/Class
Synonym for super{.
SUPER{ -- : cname1 cname2 } opt OOP/Class
Used to declare the superclass(es) when defining a class. See :class.
SUSPEND? -- b Events/Event
A value. True if we've just received a Suspend event.
SuspendVec -- Events/Event
A vect. Called for suspend.
SWAP n1 n2 -- n2 n1 Stack/Nuc2.asm
SYS wptr -- Events/Event
System click handler, a direct call to SystemClick.
SYSINIT -- System/Objinit
SYSINIT is the startup word, called via the vect objinit, that
initializes the nucleus objects for the Mops development environment
above Files.
SYSPAT idx -- obj Quickdraw/QD
Given a zero-based index, returns the system object syspattn (class
pattern) which will be set to a resource pattern from the SysPatList.
Common usage is, e.g.: 4 syspat get: ** will yield a gray pattern
usable with calls like FillRect. See IM I-474 for the pattern list
(subtract 1 from the indices shown in IM).
SYSPATTN -- obj Quickdraw/QD
A system object. Class is pattern.
TAN flt1 -- flt2 FloatingPoint/floating point
Computes tangent, given radians.
TBOOL b -- tbool Toolbox/Window
Makes a Mops boolean into a Toolbox boolean. Note that tbool should
only be used as a setup for a Toolbox call as the stack will be
mis-aligned until the Toolbox call is done.
TEIDLE -- System/Nuc.asm
A system vector. Currently does nothing. Is called a lot since it
is called everytime NextEvent is called.
temprect -- obj System/QD
A system object of class rect, useable at anytime for whatever you wish.
TFACE n -- QuickDraw/Window
A direct call to TextFace.
TFONT n -- QuickDraw/Window
A direct call to TextFont.
THEDLG -- addr Events/Event
A variable.
THEMOUSE -- obj Events/Event
The Mops mouse object.
THEN -- ControlStructures/Nuc2.asm
standard. Use with IF and NIF.
THEPOINT -- addr Events/Event
A variable.
THEPORT -- grfptr QuickDraw/Nuc2.asm
Returns a grfptr from the global variable thePort, which always points
to the current port.
THEWINDOW -- addr Windows/Window
A variable.
THREAD str-addr -- thread-addr Compiler/Nuc2.asm
THROW n -- n | 0 -- Errors/Nuc2.asm
Standard. If n is zero, drop it and continue. Otherwise exit to the
current CATCH and pass it n.
THUMB -- 129 Controls/Window
A constant.
TIB -- addr system/Nuc2.asm
This value is the address of the terminal input buffer, where
characters typed at the keyboard are stored.
TMODE n -- QuickDraw/Window
A direct call to TextMode.
TMPPTN -- obj Quickdraw/QD
A system object pointer of class pattern.
TRAP$ -- : trap# Toolbox/Base
Compiles a toolbox trap if the Tools module is not loaded. The new
syntax is, e.g.trap$ A9FF
TRAV xt parm -- Compiler/Struct
Traverses the dictionary, passing each xt and the parm to the passed-in
proc.
TRAV-FROM xt parm addr -- Compiler/Struct
As for TRAV, but starts from the first word whose lfa is below or at
the given address.
TRUE -- b Arithmetic/Nuc2.asm
A constant = -1
TRUNC flt1 -- flt2 FloatingPoint/floating point
Truncates the fractional portion of the given float. Of course we still
have a float.
TSIZE n -- QuickDraw/Window
A direct call to TextSize.
TUCK n1 n2 -- n2 n1 n2 Stack/Nuc2.asm
Copies top stack item under second item.
TYPCHK n -- Errors/base
Sometimes we want to check that a non-object parameter to a word is of
a certain type. We give it a unique type code and use TYPCHK.
TYPE addr len -- Console/Nuc2.asm
Prints an (addr-len format) string on the screen or printer, by
executing the system vectors typevec and ptypevec. When Mops starts up,
typevec is vectored to the primitive (type) that prints a string on the
screen, and ptypevec is vectored to 2drop. So the default action of
type is to print a string on the screen only. Type increments value OUT
by len.
TYPE# -- : lit Errors/base
Displays given string number (a literal) from the mops.rsrc file.
TYPECNT -- n Compiler/base
A value. Used by type{.
TYPEVEC addr len -- System/Nuc2.asm
This is the execution vector for type. When Mops starts up, typevec is
vectored to (type), the primitive that prints a string on the screen.
TYPE{ -- : name1 name2 etc. Compiler/base
TYPE{ defines a Pascal-like enumerated type. At this stage we don't
give a name to the "type" as such, as we can't do anything really
sensible with it. However later we can optionally load the ENUM-TYPE
class which is rather more Pascal-like. But even without that, the
enumeration is useful by itself.
U. n -- Console/Nuc2.asm
Displays a number as an unsigned number, followed by one space.
U.H n -- Console/Base
Displays unsigned number in hex. See .H for signed.
U.R u w -- Console/Struct
Displays the unsigned number u right justified in a field of width w.
The entire number is displayed, even if its width exceeds w.
U/MOD n1 n2 -- rem n1/n2 Arithmetic/Nuc2.asm
divides n1 by n2 leaving the remainder under the unsigned quotient.
U< u1 u2 -- b Arithmetic/Nuc2.asm
U> u1 u2 -- b Arithmetic/Nuc2.asm
U>= u1 u2 -- b Arithmetic/Nuc2.asm
UBYTE -- : name OOP/Struct
The standard unsigned byte class. See also BYTE.
UCFLAG -- b System/Nuc2.asm
A value.
UINT -- : name OOP/Struct
The standard unsigned integer class, a subclass of INT.
UNLOK -- System/Nuc2.asm
Glue routine for various toolbox calls, which is needed by the HANDLE
and PTR classes. Should not be called directly from anywhere else.
UNLOOP -- ControlStructures/Nuc2.asm
ANSI standard. Use it if you want to EXIT from within a DO loop - put
UNLOOP before the EXIT. It removes the loop stuff from the return stack.
UNPACK x:y -- x y Toolbox/Nuc2.asm
Unpacks a Toolbox point and puts the two integers on the stack. Unpack
is the opposite of pack.
UNTIL ? -- ControlStructures/Nuc2.asm
standard. Stop if ? is non-zero.
UNUSED ( -- u ) Core/Nuc2.asm
u is the amount of space remaining in the region address by HERE, in
address units.
UPD-EVT -- false Events/Event
An action word for fevent. Handles update events by sending a late
bound draw: message to the current window (but only if it is an
application window).
UPPER addr len -- Strings /Nuc2.asm
Converts the given text to upper case.
UseFPU? -- b System /Nuc.asm
The value FPU? is set non-zero by the startup code if an FPU is
present. If the FPU is present, FP words use it directly without
calling SANE.
VALUE n -- : name Memory/Nuc2.asm
General purpose data variable defining word. Can use prefix operators
to manipulate ( ->, ++>, etc.). Can also late bind to objects stored in
values.
VAR -- : name OOP/Struct
The standard variable class. Subclass of longword that adds the +: and
-: methods. Useful as an ivar that maps into a Toolbox LONGINT record
structure.
VARIABLE -- : name Memory/Nuc2.asm
standard Forth defining word. Use @ and ! for accessing. Will leave the
addr at runtime.
VECT xt -- : name Compiler/Nuc2.asm
Defines an execution variable that can hold and execute the xt of a
Mops word. Can use -> at runtime to change.
VOLNAME? obj -- b Files/Files
Given a string object, returns true if the string could be a volume
name (i.e. the name contains a ":" and its length is greater than 1.
W -- 16-bit-value : value Toolbox/Base
Useful for compiling a 16 bit number for toolbox calls. Same as n
makeint except n must be known at compilation time. More compact than
using n makeint.
W! w addr -- Memory/Nuc2.asm
Strores given 16-bit number into word at given address.
W+! w addr -- Memory/Nuc2.asm
Adds given 16-bit number to word at given address.
W, w -- Compiler/Nuc2.asm
Compiles 2-byte w into the next available dictionary.
W-! w addr -- Memory/Nuc2.asm
Subtracts given 16-bit number from word at given address.
W@ addr -- w Memory/Nuc2.asm
Fetches 16-bit value from given address. Does not sign extend to
32-bits.
W@X addr -- w Memory/Nuc2.asm
Fetches 16-bit value from given address. Sign extends to 32-bits.
WAITCLICK -- Events/Event
Waits until a mouse click or key event.
warnings? -- b System /Nuc.asm
A value. If True, enables warnings of name and method redefinition.
Initially False.
WATCHCURS -- Quickdraw/QD
Sets the cursor to this.
WDISPL! src dst -- Compiler/Nuc2.asm
Stores the source address as a short relative address at the
destination (it is relative to the destination).
WDISPLACE addr -- addr' Compiler/Nuc2.asm
Similar to displace, but uses the (16-bit) word at addr.
wHASH str255 -- w Compiler/Nuc2.asm
WHERE -- Errors/Nuc2.asm
A system vector. In many Forth systems. Gives diagnostics on an error.
Default is (WHERE).
WHILE ? -- ControlStructures/Nuc2.asm
standard. Continue if ? is non-zero.
WHRFEV -- point Events/Window
Will become where: fEvent .
WINDOW -- : name Windows/windowmod.txt
A system class. The basic window class, with no controls.
WINDOWKIND wptr -- w Windows/Event
Given a window pointer, returns the windowKind data from the window
record.
WITHIN? n lo hi -- n b Arithmetic/Nuc2.asm
Returns true if lo <= n <= hi.
WND -- wptr | 0 Events/Event
Addr of window we're looking at. We need to late-bind to it since the
window object may be a sub-class.
WNEavail? -- b Events/Nuc2.asm
A value. Set True by the startup code if the WaitNextEvent trap is
available in the System being used.
WORD c -- addr Lowstrings/Nuc2.asm
Parses the source using c as the delimiter (using PARSE-SRC-WORD).
Moves the resulting string as a counted string to HERE, and returns
this address.
WORD" -- addr Lowstrings/Nuc2.asm
Word" takes the "-delimited string from the input stream and stores it
at HERE, and then returns that address for further processing. Word"
does not map to uppercase.
WORD0 n -- 16-zero-bits Toolbox/Nuc2.asm
Pushes 16 zero bits (hex 0000) onto the stack. You can use word0 to
prepare for a Toolbox function call for the result, if the function
returns a Toolbox integer.
WORDS -- Compiler/Struct
Displays all words in the dictionary. Press spacebar to pause.
X-ADDR -- : name OOP/Struct
X-ADDR is an executable dictionary address class. The only significant
difference to DicAddr is that there is an Exec: method and no Get:
method. But if we ever have to separate code and data, having a
separate class could prove very useful.
X-ARRAY #elems -- : name OOP/Struct
A standard class. A subclass of ARRAY, can execute its elements (which
are xts of Mops words).
X-COL #elems -- : name OOP/Struct
A standard class. X-COL is a collection of executable word addresses. A
subclass of (col) and x-array.
XOR n1 n2 -- xor Arithmetic/Nuc2.asm
XOR> n -- : word Arithmetic /args
A prefix operator. Logically xors with n. Use for values, local
variables, named input parameters. Not for floats.
XT? xt? -- xt? b Compiler/Nuc2.asm
Checks if xt? could really be an xt (executable token).
XTS{ -- : name1 name2 etc. Compiler/base
State-smart word to compile or stack a list of xts. Pulls words from
stream, until "}".
XWID class -- xwid OOPprimitive/Class
Given a class pointer, retuns the width of the indexed elements.
[ -- Compiler/Nuc2.asm
So now [ and ] do double duty. If they follow a method selector, they
cause a late bind as in Neon. In any other context they turn
compilation on and off.
['] -- xt : word Compiler/Nuc2.asm
In Neon, ' (tick) was state-smart, following Fig-Forth. We have now
followed the Forth-83 and ANSI standards in replacing the state-smart
tick with the two state-dumb forms ' (which ticks the next word in the
input stream at run time, no matter what) and ['] which is immediate,
must be used in a definition, and compiles a literal fetch of the xt of
the following word.
[CHAR] -- : char Strings/Base
Compile ascii value of char as a literal. Use only inside a definition.
ANSII See CHAR and &
[SELF] obj selid -- OOP/Class
Late binds whatever is on the stack to the given method. e.g. obj get:
[self] . You must be sure that obj really does point to an object.
Synonym for **.
[] obj selid -- OOP/Class
Late binds whatever is on the stack to the given method. e.g. obj get:
[] . You must be sure that obj really does point to an object. Synonym
for **.
\ -- Compiler/Nuc2.asm
Backslash. Will cause compiler to ignore the rest of that line. Useful
for commenting.
] -- OOP/Class
Ends an expression with a late bound message that computes the address
of the object to recieve the message. e.g. get: [ 0 at: anArray ] .
This is an alternative syntax to that provided by **, [], and [self].
], -- ControlStructures/casemod.txt
Use within a CASE[ statement. Allows an OR condition to be set up
with the same action. See CASE[
]=> -- ControlStructures/casemod.txt
Use within a CASE[ statement.
]CASE -- ControlStructures/casemod.txt
Use to end a CASE[ statement. Note that, unlike ENDCASE, we need
nothing on the stack at this point.
^BASE -- addr OOP/Nuc2.asm
Addr is the base address of the private data of the object. Only used
in a class definition. Same as addr: self.
^CLASS -- class OOPprimitive/Class
Addr of the class we're currently compiling.
^DLEN obj -- dfa OOPprimitive/Class
Returns the dfa for the given object.
^ELEM idx -- addr Oop/Nuc2.asm
Leaves addr of indexed element.
^ELEM1 -- addr Oop/Nuc2.asm
As for ^ELEM, but assumes width = 1. Saves multiplying.
^ELEM2 -- addr Oop/Nuc2.asm
As for ^ELEM, but assumes width = 2. Saves multiplying.
^ELEM4 -- addr Oop/Nuc2.asm
As for ^ELEM, but assumes width = 4. Saves multiplying.
{ -- Compiler/args
Used to begin list of local variables and named input parameters. Note
that the compiler willfirst search this list, so these names take
precedence over other names in the dictionary.
} -- Compiler/base
Right brace. Denotes end of a list, such as a list of local variables,
xts, etc.
}END -- Controlstructures/Modules
Used in a select{ construct.
}OR)? xt -- xt b Compiler/base
Primitive.
}SELECT n -- Controlstructures/Modules
Used in a select{ construct.